gpt4 book ai didi

python - Pandas Groupby 可以聚合成对象列表吗

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:33 25 4
gpt4 key购买 nike

虽然 panda 的 groupby 能够使用 summean 等函数聚合数据,但有没有办法聚合到对象列表中,这些对象的键对应于聚合这些值的列名?

问题:

如果数据看起来像这样

    A    B    C  
1 10 22
1 12 20
1 11 8
1 10 10
2 11 13
2 12 10
3 14 0

我们如何让 Pandas 将其转换为这个假设的输出:

    A    D  
1 [{'B':10, 'C':22}, {'B':12, 'C':20}, {'B':11, 'C':8}, {'B':10, 'C':10}]
2 [{'B':11, 'C':13}, {'B':12, 'C':10}]
3 [{'B':14, 'C':0}]

最佳答案

我实际上不确定这是否有效,但似乎有效。

In [35]: df.groupby('A').apply(lambda x: x.to_dict(orient='records'))
Out[35]:
A
1 [{u'A': 1, u'C': 22, u'B': 10}, {u'A': 1, u'C'...
2 [{u'A': 2, u'C': 13, u'B': 11}, {u'A': 2, u'C'...
3 [{u'A': 3, u'C': 0, u'B': 14}]
dtype: object

根据您想要完成的任务,迭代 groupby 对象并进行转换可能会更自然,如下所示:

In [36]: for a, df_gb in df.groupby('A'):
...: d = df_gb.to_dict(orient='records')
...:

关于python - Pandas Groupby 可以聚合成对象列表吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32869110/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com