data.groupby()[]实际应用例举

136 阅读1分钟
  1. 计算统计量
# 计算每个分组的平均值
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()
  1. 拼接字符串
# 将每个分组内的字符串连接成一个长字符串,以逗号分隔
result = data.groupby("category")["product_name"].apply(lambda x: ','.join(x))
  1. 多列聚合
# 对多个列进行聚合操作,计算每个分组的平均销售额和总订单数量
result = data.groupby("category").agg({"sales": "mean", "orders": "sum"})
  1. 自定义函数
# 自定义函数,计算每个分组的销售额和订单数量之比
def sales_to_orders_ratio(group):
    return group["sales"].sum() / group["orders"].sum()

result = data.groupby("category").apply(sales_to_orders_ratio)
  1. 过滤数据
# 只保留满足特定条件(比如平均销售额大于1000)的分组
result = data.groupby("category").filter(lambda x: x["sales"].mean() > 1000)
  1. 透视表操作
# 创建透视表,根据"year"和"month"对数据进行分组,并计算每个分组的平均销售额
result = data.pivot_table(index="year", columns="month", values="sales", aggfunc="mean")
  1. 时间序列聚合
# 按月份对时间序列数据进行聚合,计算每个月的总销售额
result = data.resample("M").sum()
  1. 其他
# 按月份对时间序列数据进行聚合,计算每个月的总销售额
result = data.("itemId")["discountedPrice"].apply(list)

输出结果:

itemId
A    [10, 15]
B    [20, 25, 30]
Name: discountedPrice, dtype: object

这些例子涵盖了一些常见的聚合操作,但实际上,根据具体的数据和分析目的,可以有许多其他类型的聚合操作。