使用 groupby 进行多维度数据分析,计算统计指标
使用 retail_orders 数据集,包含订单ID、产品、数量、价格、地区、日期等信息。
分组聚合(GroupBy)是数据分析中最强大的操作之一,它允许我们:
使用 groupby() 方法按单个列分组,然后应用聚合函数。
# 按产品分组并求和 product_group = df.groupby('product').sum() print(product_group)
可以只对特定列进行聚合操作,提高效率。
# 只对 quantity 列求和 product_qty = df.groupby('product')['quantity'].sum() print(product_qty)
传入列名列表,可以按多个维度进行分组。
# 按产品和地区两个维度分组 multi_group = df.groupby(['product', 'region']).sum() print(multi_group)
计算每组的总和,常用于计算总销售额、总数量等。
# 按地区分组计算总销量 region_sales = df.groupby('region')['quantity'].sum() print(region_sales)
计算每组的平均值,常用于计算平均价格、平均订单量等。
# 按产品分组计算平均价格 product_mean = df.groupby('product')['price'].mean() print(product_mean)
计算每组的非缺失值数量,常用于统计订单数。
# 按地区统计订单数量 region_count = df.groupby('region')['order_id'].count() print(region_count)
计算每组的中位数,适合处理有异常值的数据。
# 按产品计算价格中位数 product_median = df.groupby('product')['price'].median() print(product_median)
agg() 允许同时对同一列应用多个聚合函数。
# 同时计算 sum 和 mean product_stats = df.groupby('product')['quantity'].agg(['sum', 'mean']) print(product_stats)
可以为不同列指定不同的聚合函数。
# 对 quantity 求和,对 price 求均值 product_agg = df.groupby('product').agg({ 'quantity': 'sum', 'price': 'mean' }) print(product_agg)
对分组结果进行排序,找出最大/最小的组。
# 按产品分组并排序 product_group = df.groupby('product')['quantity'].sum() sorted_result = product_group.sort_values(ascending=False) print(sorted_result)
在下方代码编辑器中编写并运行完整的分组聚合代码: