【问题标题】:Dataframe to grouped JSON数据框到分组 JSON
【发布时间】:2021-08-19 20:44:15
【问题描述】:

它与thisthis 非常相似,但仍然不同到不适用

我有一个这样的数据框:

df = pd.DataFrame(data=[['u1', 't1', 1], ['u1', 't2', 1], ['u2', 't1', 0]],
columns=['user', 'track', 'rel'])

我需要生成以下 JSON:

{ 'u1' : {
         't1' : 1,
         't2' : 1
        },
 'u2' : {
         't1' : 0
        }
}
  • 列名并不重要
  • 结果中不能有数组符号“[”。

我试过了

   a = [{ k : [{t : 1} for t in  g['track']]} for k, g in df.groupby('user')]
   json.dumps(a)

结果几乎是我想要的,但是带有不想要的括号和值没有正确分组:

'[{'u1': [{'t1': 1}, {'t2': 1}, {'t1': 1}]},
 {'u2': [{'t1': 1}, {'t2': 1}, {'t1': 1}]}]'

有没有一种有效的方法来做到这一点?

【问题讨论】:

    标签: python json pandas


    【解决方案1】:

    可能在数据帧上使用 to_json?看这里: https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.to_json.html

    【讨论】:

    • to_json,据我了解,不能使用 VALUES 作为键,只能使用列。
    • 我想你也许可以使用 orient 参数。我发现这可能会有所帮助(与上面的链接不同)? stackoverflow.com/questions/40470954/…
    猜你喜欢
    • 2015-08-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    • 2021-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多