我试图了解如何根据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
的{{1}}对应的行已归入2
的新index2
。
答案 0 :(得分:3)
您可以从 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