首页 > 解决方案 > 将多索引 Pandas 数据框转换为 JSON

问题描述

DataFrame考虑一个熊猫MultiIndex

                    virtual_device_135 virtual_device_136
                              tag_5764           tag_5764
timestamp                                                
31/03/2020 02:10:30              -0.97                NaN
31/03/2020 02:10:35                NaN               0.98
31/03/2020 02:10:40              -0.97                NaN
31/03/2020 02:10:45                NaN              -0.98
31/03/2020 02:10:50              -0.97                NaN

以上DataFrame需要转换成json如下所示:

bodyContent": [
        {
          "time": "31/03/2020 02:17:01",
          "tag_5764_virtual_device_135": -0.97
        },
        {
          "time": "31/03/2020 02:17:12",
          "tag_5764_virtual_device_135": -0.97
        },
        {
          "time": "31/03/2020 02:17:22",
          "tag_5764_virtual_device_135": -0.97
        },
        {
          "time": "31/03/2020 02:18:37",
          "tag_5764_virtual_device_136": -0.98
        },
        {
          "time": "31/03/2020 02:18:47",
          "tag_5764_virtual_device_136": -0.98
        },
        {
          "time": "31/03/2020 02:18:57",
          "tag_5764_virtual_device_136": -0.98
        }
]

目前,我正在拆分 DF,然后重命名列,然后将其合并,然后转换为 json。

我可以在 Pandas 中使用更好的方法吗?

任何帮助表示赞赏!

标签: pythonpandaspandas-groupbymulti-index

解决方案


我发现它可以按以下方式完成:

如果DataFrame是df:

df.columns = ['_'.join(col) for col in df.columns]
df.reset_index(inplace=True)

df_list = json.loads(df.to_json(orient='records'))

for each in df_list:
    body_content_list.append(each)

希望这对某人有用。


推荐阅读