我试图了解如何基于Pandas中的2个索引来总结行的子集。第一个索引对行进行分组,第二个索引将确定要累加的行。举个最小的例子,假设我有数据框
index1 | index2 | value
------------------------
a | 1 | 10
a | 2 | 11
a | 3 | 12
b | 1 | 20
b | 2 | 21
b | 3 | 22
如何汇总与索引
1
和2
对应的行,但仍将它们分组在索引a
和b
下。即以下结果。index1 | index2 | value
------------------------
a | 1 | 21
a | 2 | 12
b | 1 | 41
b | 2 | 22
此处,与
index2
和1
的2
相对应的行已加到index2
的新1
中。 最佳答案
您可以从index2列派生一个新数组/系列作为组变量,然后进行求和:
df.groupby([df.index1, ~df.index2.isin([1,2]) + 1]).value.sum().reset_index()
#index1 index2 value
#0 a 1 21
#1 a 2 12
#2 b 1 41
#3 b 2 22
关于python - 在 Pandas 中基于条件求和,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42634430/