如何使用python或pandas(最好)将pandas data_frame转换为列表字典以输入到highcharts中。
我最接近的是(请参阅tmp notebook:https://b9ad8d-iad-002.tmpnb.org/user-fVD4OAy9K8wR/notebooks/pd_to_json.ipynb)
df.T.to_json('bar.json',orient ='index') 但这是一个“词典的词汇”,而不是“列表的词典”
我的意见:
import pandas
import numpy as np
df = pandas.DataFrame({
"date": ['2014-10-1', '2014-10-2', '2014-10-3', '2014-10-4', '2014-10-5'],
"time" : [1,2,3,4,5],
"temp" : np.random.random_integers(0,10,5),
"foo" : np.random.random_integers(0,10,5)
})
df2 = df.set_index(['date'])
df2
所需输出:我在Highcharts中使用此输出,这需要它是一个'列表字典',如下所示:
{
"date": [
"2014-10-1",
"2014-10-2",
"2014-10-3",
"2014-10-4",
"2014-10-5"
],
"foo": [
7,
2,
5,
5,
6
],
"temp": [
8,
6,
10,
10,
3
],
"time": [
1,
2,
3,
4,
5
]
}
非常感谢任何帮助!
答案 0 :(得分:10)
In [199]: df2.reset_index().to_dict(orient='list')
Out[199]:
{'date': ['2014-10-1', '2014-10-2', '2014-10-3', '2014-10-4', '2014-10-5'],
'foo': [8, 1, 8, 8, 1],
'temp': [10, 10, 8, 3, 10],
'time': [1, 2, 3, 4, 5]}
答案 1 :(得分:0)
创建每行词典的列表
post_data_list = []
for i in df2.index:
data_dict = {}
for column in df2.columns:
data_dict[column] = df2[column][i]
post_data_list.append(data_dict)