我很难在json中保存熊猫数据框:
我知道pandas.DataFrame.to_json,但是仍然有问题
从这里:
import pandas as pd
df = pd.DataFrame([[0, 1], [2, 3]],
index=pd.to_datetime(['2020-02-03 02:59:33', '2020-02-06 02:44:33']),
columns=['Var1', 'Var2'])
对此:
Var1=df.columns[0]
Var2=df.columns[1]
dev='mydevice'
json={
"device":dev,
"signals":{
Var1:
{"history" : [
{"value" : 0,"date" : "2020-02-03T02:59:33.000+0000"},
{"value" : 2,"date" : "2020-02-06T02:44:33.000+0000"}
]}},
Var2:
{"history" : [
{"value" : 1,"date" : "2020-02-03T02:59:33.000+0000"},
{"value" : 3,"date" : "2020-02-06T02:44:33.000+0000"}
]}}
日期必须用于第二种格式
请您抽出宝贵的时间来解决这个问题。
答案 0 :(得分:0)
您可以使用df.to_dict()
和嵌套循环来获得所需的输出。
signals = {}
for key, val in df.to_dict(orient='dict').items():
signals[key] = {'history': []}
for k, v in val.items():
signals[key].get('history').append({'value': v, 'date': k.strftime('%Y-%m-%dT%H:%M:%S.000+0000')})
json_ = {"device": 'mydevice',
"signals": signals}
结果:
{'device': 'mydevice',
'signals': {'Var1': {'history': [{'date': '2020-02-03T02:59:33.000+0000',
'value': 0},
{'date': '2020-02-06T02:44:33.000+0000',
'value': 2}]},
'Var2': {'history': [{'date': '2020-02-03T02:59:33.000+0000',
'value': 1},
{'date': '2020-02-06T02:44:33.000+0000',
'value': 3}]}}}