考虑以下df
df = pd.DataFrame([
['X', 'a', 0, 1],
['X', 'b', 2, 3],
['X', 'c', 4, 5],
['Y', 'a', 6, 7],
['Y', 'b', 8, 9],
['Y', 'c', 10, 11],
], columns=['One', 'Two', 'Three', 'Four'])
df
df.dtypes
One object
Two object
Three int64
Four int64
dtype: object
当我df.sum()时,我得到了每一列的总和.
df.sum()
One XXXYYY
Two abcabc
Three 30
Four 36
dtype: object
但是,我想在groupby中执行此操作.我希望这能奏效
df.groupby('One').sum()
但是它似乎只对数字列求和.与df.sum()进行相同求和的便捷方法是什么?
我希望这个结果
pd.concat([df.set_index('One').loc[i].sum() for i in ['X', 'Y']],
axis=1, keys=['X', 'Y']).T.rename_axis('One')