我有一个在pandas数据帧上进行分组的函数。问题是我的数据框可以有可变数量的列。我想聚合:将第一列的最后一列加起来。最后一列的名称不同,但第一列的名称是固定的。
我怎样才能实现这个群体?我尝试使用iloc并使用df.columns [-1]获取最后一列的列名,但是,这些技巧似乎都不起作用。
有没有更好的方法来实现这一点,而不是将最后一个列名称更改为某个常用值?
答案 0 :(得分:2)
df.groupby(df.columns[0])[df.columns[-1]].sum()
应该有用。
实施例:
df = pd.DataFrame({
'a': [1,1,2,2],
'b': [1,2,3,4]
})
df.groupby(df.columns[0])[df.columns[-1]].sum()
#a
#1 3
#2 7
#Name: b, dtype: int64
答案 1 :(得分:1)
只需使用Series
选择的iloc
,@ psidom借用的数据:
s = df.iloc[:, -1].groupby(df.iloc[:, 0]).sum()
print (s)
a
1 3
2 7
Name: b, dtype: int64