python - 使用 Python 将 DataFrame 转换为 JSON 数组
问题描述
我有这个数据框:
A B C D
16 USA 15.5 10.8 4.7
15 Germany 17.7 12.3 5.3
我想创建一个如下所示的 JSON 文件:
"data": [
["A", "B", "C", "D"],
["USA", "15.5", "10.8", "4.7"],
["Germany", "17.7", "12.3", "5.3],
]
to_dict()
或to_json()
似乎不起作用。
这确实有效:
numpy_array = df.to_numpy()
column_headers = df.columns.values.tolist()
array_with_headers = numpy.vstack([column_headers, numpy_array])
json_object = {}
json_object["data"] = array_with_headers.tolist()
……虽然有点复杂。知道如何在没有 numpy 的情况下实现这一目标吗?非常感谢!
解决方案
您可以将每一行转换为list
usingapply
然后调用to_list()
,这将为您提供列表中的数据,您可以在其上调用json.dumps
import json
json.dumps({'data': df.reset_index(drop=True).T.reset_index().T.apply(list,axis=1).to_list()})
输出:
'{"data": [["A", "B", "C", "D"], ["USA", 15.5, 10.8, 4.7], ["Germany", 17.7, 12.3, 5.3]]}'
PS:reset_index()
并且 trasnposeT
仅用于将列名放在第一行。
推荐阅读
- node-red - 我如何保持 FRED 节点连接
- python - 具有多个属性的 find_all
- android - 无法移动到主要活动
- c# - C# SDK 中 AWS Lambda 的 callbackWaitsForEmptyEventLoop
- reactjs - 在 React Native 中将值传递给新屏幕
- c# - 递归获取类的字段和属性类型
- sql - impala 中的长度小于 8 位数
- python - 要求用户输入他们的用户名和密码并将其存储在文件中,如何添加包含哈希密码的字典?
- c# - 更新面板中的 C# 动态单选按钮在第一次单击时未触发?
- javascript - 如何在javascript中的字符串中添加反斜杠?