繁体   English   中英

将数据帧值转换为特定的 json 样式格式(字典列表)

[英]converting dataframe values into a particular json-style format (list of dictionaries)

我是 python 的新手,无法以 json 样式格式格式化输出。

我有一个数据框df作为

    col1    col2
0   ABC     2429
1   DEF     702
2   XYZ     2912
3   ABC     619
4   XYZ     3106
5   DEF     1511

我想生成一个字典列表,其中的输出应该是这样的:

[
 {
  "col1":"ABC",
  "col2":[2429,619]
 },
 {
  "col1":"DEF",
  "col2":[702,1511]
 },
 {
  "col1":"XYZ",
  "col2":[2912,3106]
 }
]

您可以按col1分组,将col2值聚合到列表中,最后生成一个 JSON:

In [64]: j = df.groupby('col1')['col2'].apply(list).reset_index().to_json(orient='records')

In [65]: j
Out[65]: '[{"col1":"ABC","col2":[2429,619]},{"col1":"DEF","col2":[702,1511]},{"col1":"XYZ","col2":[2912,3106]}]'

让它更好(人性化):

In [66]: print(json.dumps(json.loads(j), indent=2))
[
  {
    "col1": "ABC",
    "col2": [
      2429,
      619
    ]
  },
  {
    "col1": "DEF",
    "col2": [
      702,
      1511
    ]
  },
  {
    "col1": "XYZ",
    "col2": [
      2912,
      3106
    ]
  }
]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM