【问题标题】:Dataframe implicitly holding a hierarchy to JSON数据框隐含地持有 JSON 的层次结构
【发布时间】:2014-12-09 02:02:48
【问题描述】:

假设我有一个如下数据框:

A    B   C       D
bar  X   one     1
bar  X   two     2
foo  Z   one     1
foo  Z   two     2
foo  Z   three   3
foo  Z   four    4

我想将其转换为 JSON 文件:

[{'A': 'bar',
  'B': 'X'
  'C': ['one', 'two']
  'D': ['1', '2']

 {'A': 'foo',
  'B': 'Z',
  'C': ['one', 'two', 'three', 'four'}
  'D': ['1', '2', '3', '4'}
]

当然df.to_json(orient='records') 没用。有没有办法用to_json 做到这一点?或者,我该怎么做?

注意:如果有歧义,假设很简单:A 的每个值只有一个 B 值。这样的对对应于包含CD 序列的“记录”,其中C 的每个值也只有一个D 值。

【问题讨论】:

    标签: python json pandas


    【解决方案1】:

    你可以这样做:

    df.groupby(['A', 'B'])\
      .agg(tuple)\
      .reset_index()\
      .to_json(orient='records')
    

    这里的技巧是在聚合步骤中转换为元组,而不是直接去一个列表(不知何故熊猫restricts this)。元组以与列表相同的方式进行 json 序列化。

    【讨论】:

      猜你喜欢
      • 2019-12-07
      • 1970-01-01
      • 2017-10-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-16
      • 2016-07-01
      相关资源
      最近更新 更多