groupby
和 agg
是 pandas
库中非常强大的功能,它们通常一起使用来对数据进行分组和聚合。groupby
函数用于根据一个或多个列的值将数据分组,而 agg
函数则用于对每个分组应用聚合操作。
1.groupby
groupby
函数的基本用法是根据 DataFrame 的一列或多列的值将数据分组。它返回一个 GroupBy 对象,该对象可以进行各种聚合操作。
import pandas as pd
# 创建一个示例 DataFrame
df = pd.DataFrame({
'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': np.random.randn(8),
'D': np.random.randn(8)
})
# 使用 'A' 和 'B' 列的值进行分组
grouped = df.groupby(['A', 'B'])
print(grouped)
2.agg
agg
函数用于对每个分组应用聚合函数。它可以接受一个函数、函数列表、字典或字符串作为参数。
# 对每个分组计算 'C' 和 'D' 列的总和和平均值
result = grouped.agg({
'C': ['sum', 'mean'],
'D': ['sum', 'mean']
})
print(