将 pandas DataFrame 转换为 JSON 列表字典
Convert pandas DataFrame to JSON dictionary of lists
我有一个 pandas 数据框,表示一些基本的天气信息,如下所示
location
dDate
min-temp
max-temp
rain
Sydney
2013-01-01
15
35
10
Sydney
2013-01-02
16
36
5
Sydney
2013-01-03
16
31
0
Sydney
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, 0, 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,其中每个列只是一个值数组?
to_json
只支持记录和嵌套字典格式。要获取列表字典,首先使用 to_dict
转换为字典,然后转换为 json:
pd.io.json.dumps(df.to_dict(orient='list'))
# '{"x":["2013-01-01","2013-01-02","2013-01-03","2013-01-04"],"rain":[10,5,0,2],"max-temp":[35,36,31,31]}'
我有一个 pandas 数据框,表示一些基本的天气信息,如下所示
location | dDate | min-temp | max-temp | rain |
---|---|---|---|---|
Sydney | 2013-01-01 | 15 | 35 | 10 |
Sydney | 2013-01-02 | 16 | 36 | 5 |
Sydney | 2013-01-03 | 16 | 31 | 0 |
Sydney | 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, 0, 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,其中每个列只是一个值数组?
to_json
只支持记录和嵌套字典格式。要获取列表字典,首先使用 to_dict
转换为字典,然后转换为 json:
pd.io.json.dumps(df.to_dict(orient='list'))
# '{"x":["2013-01-01","2013-01-02","2013-01-03","2013-01-04"],"rain":[10,5,0,2],"max-temp":[35,36,31,31]}'