Pandas groupby连接的groupby对象

Dre*_*ewH 2 python pandas

我使用groupby和sum快速聚合accros两个数据集

A包含:

sequence shares
1        100
2        200
3        50
1        200
Run Code Online (Sandbox Code Playgroud)

B包含:

sequence shares
1        100
2        200
2        50
3        50
Run Code Online (Sandbox Code Playgroud)

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

我想得到的是C:

sequence shares
1        400
2        450
3        100
Run Code Online (Sandbox Code Playgroud)

谁能解释一下这里发生了什么?我可以在groupby().sum()之前连接,但我真的想在连接它们之前将这些数据集缩小到更小的大小.

Zel*_*ny7 5

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
Run Code Online (Sandbox Code Playgroud)