- 计算统计量:
# 计算每个分组的平均值
result = data.groupby("category")["sales"].mean()
# 计算每个分组的总和
result = data.groupby("category")["sales"].sum()
# 计算每个分组的最大值和最小值
result_max = data.groupby("category")["sales"].max()
result_min = data.groupby("category")["sales"].min()
- 拼接字符串:
# 将每个分组内的字符串连接成一个长字符串,以逗号分隔
result = data.groupby("category")["product_name"].apply(lambda x: ','.join(x))
- 多列聚合:
# 对多个列进行聚合操作,计算每个分组的平均销售额和总订单数量
result = data.groupby("category").agg({"sales": "mean", "orders": "sum"})
- 自定义函数:
# 自定义函数,计算每个分组的销售额和订单数量之比
def sales_to_orders_ratio(group):
return group["sales"].sum() / group["orders"].sum()
result = data.groupby("category").apply(sales_to_orders_ratio)
- 过滤数据:
# 只保留满足特定条件(比如平均销售额大于1000)的分组
result = data.groupby("category").filter(lambda x: x["sales"].mean() > 1000)
- 透视表操作:
# 创建透视表,根据"year"和"month"对数据进行分组,并计算每个分组的平均销售额
result = data.pivot_table(index="year", columns="month", values="sales", aggfunc="mean")
- 时间序列聚合:
# 按月份对时间序列数据进行聚合,计算每个月的总销售额
result = data.resample("M").sum()
- 其他:
# 按月份对时间序列数据进行聚合,计算每个月的总销售额
result = data.("itemId")["discountedPrice"].apply(list)
输出结果:
itemId
A [10, 15]
B [20, 25, 30]
Name: discountedPrice, dtype: object
这些例子涵盖了一些常见的聚合操作,但实际上,根据具体的数据和分析目的,可以有许多其他类型的聚合操作。