使用索引日期时间从 pandas 数据帧创建 json
Posted
技术标签:
【中文标题】使用索引日期时间从 pandas 数据帧创建 json【英文标题】:Create json from pandas dataframe with index datetime 【发布时间】:2020-10-09 22:43:29 【问题描述】:在 json 中保存 pandas 数据框时遇到了一些麻烦:
我知道 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"
]
日期必须以第二种格式输出
所有的时间,我来这里是为了解决对这个问题的任何最终疑问。
【问题讨论】:
【参考方案1】:您可以使用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]
【讨论】:
它非常有效。有一种特殊的方式可以调用这种形式的数据吗? 以前没见过。但这并不意味着什么。那里有很多 JSON 模式。 :) 感谢您的帮助以上是关于使用索引日期时间从 pandas 数据帧创建 json的主要内容,如果未能解决你的问题,请参考以下文章