【问题标题】:Create json from pandas dataframe with index datetime使用索引日期时间从 pandas 数据帧创建 json
【发布时间】: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"}
                            ]}}

日期必须以第二种格式输出

所有的时间,我来这里是为了解决对这个问题的任何最终疑问。

【问题讨论】:

    标签: python json pandas dataframe datetime


    【解决方案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 模式。 :)
    • 感谢您的帮助
    猜你喜欢
    • 2020-07-29
    • 2017-08-13
    • 2019-03-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 2015-03-22
    • 2017-06-23
    • 1970-01-01
    相关资源
    最近更新 更多