python - 将多索引 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 中使用更好的方法吗?
任何帮助表示赞赏!
解决方案
我发现它可以按以下方式完成:
如果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)
希望这对某人有用。
推荐阅读
- android - 有没有办法在无法构建新 APK 的情况下将旧版本的 Android 应用重新发布到 Play 商店?
- python-3.x - 如何在两种类型的字符串之间提取 csv 文件中的字符串?
- java - Enum 的参数始终设置为 null
- sql-server - 可以使用 ADODB 将 Excel 连接到 Azure SQL Server DW 吗?
- resharper - Resharper:无法“看到”.Net Framework 项目
- node.js - 日期字段未使用 .updateMany() 更新 - mongoose
- symfony - Symfony TwigBundle 不加载任何自定义扩展
- mysql - 创建或更新时未设置 Rails 模型
- elixir - 凤凰城中的 Protocol.UndefinedError
- python-3.x - 组中每一行的 Pandas 条件列值