如何将熊猫数据透视表转换为 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 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

熊猫数据透视表到数据框[重复]

熊猫数据透视表手动对列进行排序[重复]

如何组合熊猫数据透视表中的列?

如何将熊猫数据框转换为嵌套的 json

如何将数据库表转换为“数据透视”数据表?

如何将熊猫单列数据框转换为系列或numpy向量[重复]