如何将熊猫数据透视表转换为 JSON [重复]
Posted
技术标签:
【中文标题】如何将熊猫数据透视表转换为 JSON [重复]【英文标题】:How do I convert a pandas pivot table to a JSON [duplicate] 【发布时间】:2018-03-09 20:31:12 【问题描述】:我使用 pandas 数据透视表创建了如下表。
print(pd_pivot_table)
category_id name
3 name3 0.329204
24 name24 0.323727
31 name31 0.319526
19 name19 0.008992
23 name23 0.005897
我想根据这个 pivot_table 创建 JSON,但我不知道如何。
[
"category_id": 3,
"name": "name3",
"score": 0.329204
,
"category_id": 24,
"name": "name24",
"score": 0.323727
,
"category_id": 31,
"name": "name31",
"score": 0.319526
,
"category_id": 19,
"name": "name19",
"score": 0.008992
,
"category_id": 23,
"name": "name23",
"score": 0.005897
]
或者,我首先不知道如何获取 category_id 和 name 值。 即使你写下面的代码也不能得到你想要的结果。
for data in pd_pivot_table:
print(data) # 0.329204
print(data["category_id"]) # *** IndexError: invalid index to scalar variable.
【问题讨论】:
【参考方案1】:您可以先将Series.reset_index
用于DataFrame
,然后再使用DataFrame.to_json
:
print (df)
category_id name
3 name3 0.329204
24 name24 0.323727
31 name31 0.319526
19 name19 0.008992
23 name23 0.005897
Name: score, dtype: float64
print (type(df))
<class 'pandas.core.series.Series'>
json = df.reset_index().to_json(orient='records')
print (json)
["category_id":3,"name":"name3","score":0.329204,
"category_id":24,"name":"name24","score":0.323727,
"category_id":31,"name":"name31","score":0.319526,
"category_id":19,"name":"name19","score":0.008992,
"category_id":23,"name":"name23","score":0.005897]
如果需要输出到文件:
df.reset_index().to_json('file.json',orient='records')
详情:
print (df.reset_index())
category_id name score
0 3 name3 0.329204
1 24 name24 0.323727
2 31 name31 0.319526
3 19 name19 0.008992
4 23 name23 0.005897
print (type(df.reset_index()))
<class 'pandas.core.frame.DataFrame'>
【讨论】:
以上是关于如何将熊猫数据透视表转换为 JSON [重复]的主要内容,如果未能解决你的问题,请参考以下文章