You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中能否一步完成groupby并同时计算多项统计指标?

Python Pandas实现分组多指标一步聚合的方法

完全可以实现和R data.table等价的分组后多统计量同步计算效果,不需要分开计算再合并,借助Pandas的agg()命名聚合特性即可一步完成。

前置依赖

需要提前导入Pandas以及用于计算偏度、峰度的Scipy统计模块:

import pandas as pd
from scipy.stats import skew, kurtosis

核心实现代码

和你给出的R代码逻辑完全对应,分组键为Year、Category,同步计算5项统计量后按分组键排序:

df = data.groupby(['Year', 'Category'], as_index=False).agg(
    # 计算Item列的唯一值数量
    ItemCount=pd.NamedAgg(column='Item', aggfunc='nunique'),
    # 计算Value列的中位数
    Median_val=pd.NamedAgg(column='Value', aggfunc='median'),
    # 计算Value列的均值
    Avg_val=pd.NamedAgg(column='Value', aggfunc='mean'),
    # 计算Value列的偏度
    Skew_val=pd.NamedAgg(column='Value', aggfunc=skew),
    # 计算Value列的峰度
    Kurt_val=pd.NamedAgg(column='Value', aggfunc=kurtosis)
).sort_values(by=['Year', 'Category'], ignore_index=True)

补充说明

如果你的Pandas版本低于0.25不支持命名聚合语法,也可以用字典嵌套的方式完成聚合,后续再重命名列即可,效果一致。

内容的提问来源于stack exchange,提问作者Jiamei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 19:48:00