python - Pandas groupby 对串联的 groupby 对象

标签 python pandas

我正在使用 groupby 和 sum 来快速聚合两个数据集

A 其中包含:

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'没有名为序列的项目'。

我想输出的是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 - Pandas groupby 对串联的 groupby 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14024287/

相关文章:

python - 如何在 Python 中按日期对 DataFrame 进行排序?

python - 分组依据和引用移位值

python - 加入 Pythons SQLite 模块比手动加入要慢

python - Matplotlib:在 hexbin 图中使用最频繁值的 bin 组添加边框

python - 如何解决django中clean函数的问题

python - 我的 DataFrame 有 NaN 值但不应该

python - 过滤 2 列仅包含零值的行

python - 找到最能解释数据的树状层次结构

python - web2py 网站不加载所有图像/视频(尤其是较大的图像/视频)

python - Django 应用自定义用户权限