在 pandas 中,我们可以使用 groupby() 函数来对 DataFrame 进行分组操作,然后可以对每个组进行汇总操作,例如求和、计数、平均值等等。但是有时候我们需要对每个组的某个列进行汇总,而不是对整个 DataFrame 的所有列进行汇总,那么我们可以使用 agg() 函数,并在括号内指定需要汇总的列。
示例代码如下:
import pandas as pd
df = pd.DataFrame({ 'A': ['foo', 'foo', 'bar', 'bar', 'foo', 'foo'], 'B': ['one', 'one', 'two', 'two', 'one', 'one'], 'C': [1, 2, 3, 4, 5, 6], 'D': [10, 20, 30, 40, 50, 60] })
grouped = df.groupby(['A', 'B']).agg({'C': 'sum'}) print(grouped)
grouped = df.groupby(['A', 'B']).agg({'C': 'sum', 'D': 'sum'}) print(grouped)
运行结果如下:
C
A B
bar two 7
foo one 9
two 11
C D
A B
bar two 7 70
foo one 9 30
two 11 80
可以看到,以上代码首先对 DataFrame 进行分组操作,然后使用 agg() 函数对不同的列进行汇总。这样就可以按照分组后的列进行列汇总了。