将 Pandas DataFrame 转换为列表的 JSON 字典

问题描述

我有一个 Pandas 数据框,代表一些基本的天气信息,看起来像这样

位置 dDate min-temp 最大温度 下雨
悉尼 2013-01-01 15 35 10
悉尼 2013-01-02 16 36 5
悉尼 2013-01-03 16 31 0
悉尼 2013-01-04 16 31 2

要使用 JavaScript 库(例如 C3)绘制它,我需要将每一列作为 JSON 中的数组

{
  "x": ["2013-01-01","2013-01-02","2013-01-03","2013-01-04"],"rain": [10,5,2],"max-temp": [35,36,31,31]
}

格式化为列不太好

df = client.query(query).to_dataframe()
jsonstr = df.to_json(orient='columns')

结果是这样

{
   “location”:{
      “0”:Sydney,“1”:Sydney,“2”:Sydney,“3”:Sydney
   },"dDate":{
      "0":2013-01-01,"1":2013-01-02,"2":2013-01-03,"3":2013-01-04
   },“min-temp”:{
      “0”:15,“1”:16,“2”:16,“3”:16
    },…….
}

如何重现所需的 JSON,其中每个列只是一个值数组?

解决方法

CancellationTokenSource cancelTokenSource = new CancellationTokenSource(); public async Task DoStuff() { _client.Ready += () => client_Ready("test"); await Task.Delay(-1,cancelTokenSource.Token); // do something else here if desired } private async Task client_Ready(string message) { await _client.SendMessageAsync(message); cancelTokenSource.Cancel(); } 仅支持记录和嵌套 dict 格式。要获得列表的字典,首先使用 to_json 转换为字典,然后转换为 json:

to_dict