gpt4 book ai didi

python - 串联 groupby 对象上的 Pandas groupby

转载 作者:行者123 更新时间:2023-11-28 22:00:56 28 4
gpt4 key购买 nike

我正在使用 groupby 和 sum 快速汇总两个数据集

一个包含:

sequence shares
1 100
2 200
3 50
1 200

B 包含:

sequence shares
1 100
2 200
2 50
3 50

我正在使用 A=A.groupby(['sequence']).sum()B=B.groupby(['sequence']).sum() 对每个序列的份额求和。然后我想再次连接这些集合并对序列中的份额求和。但是,我尝试使用 C = concat([A,B]) 并且现在发现我只有列份额作为索引并且不能按顺序分组。 C.group(['sequence']).sum() 给我一个错误 KeyError: u'no item named sequence'.

我想出来的是C:

sequence shares
1 400
2 450
3 100

谁能解释一下这是怎么回事?我可以在 groupby().sum() 之前进行连接,但我真的想在连接它们之前将这些数据集缩小到更小的尺寸。

最佳答案

groupby 方法返回由 'sequence' 索引的数据帧。添加两个数据帧时,行按索引对齐。在这种情况下,grpA 和 grpB 的索引都是 'sequence' 因此生成的 DataFrame C 将适当的行加在一起。

A = DataFrame({'sequence': [1,2,3,1], 'shares': [100,200,50,200]})
B = DataFrame({'sequence': [1,2,2,3], 'shares': [100,200,50,50]})

grpA = A.groupby('sequence').sum()
grpB = B.groupby('sequence').sum()

In [60]: grpA + grpB
Out[60]:
shares
sequence
1 400
2 450
3 100

关于python - 串联 groupby 对象上的 Pandas groupby,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024287/

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