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

如何在pandas pivot_table中统计指定列的唯一值计数

pandas pivot_table 去重统计订单数解决方案

把aggfunc参数中对应ORDER_NUM和ORDER ID的聚合规则从'count'替换为'nunique'即可实现去重计数。

  • count聚合逻辑:统计分组后该列的非空值总数,不会过滤重复值,因此不符合你的需求
  • nunique聚合逻辑:统计分组后该列的非空唯一值总数,刚好匹配去重后订单数量的统计要求

另外注意你当前代码的values列表中未包含Cost列,但aggfunc中指定了对Cost求和,直接运行会触发KeyError,需要把Cost补充到values列表中。

修改后的完整代码如下:

df1.pivot_table(
    index=["Unit", "Grade"],
    values = ["Cost", "QTY","ORDER_NUM", "ORDER ID"],
    aggfunc={
        'Cost': 'sum',
        'QTY':'sum', 
        "ORDER_NUM":'nunique',
        "ORDER ID":'nunique'
    }
)

如果你需要把空值也计入唯一值统计,可以替换为自定义lambda聚合逻辑,示例如下:

df1.pivot_table(
    index=["Unit", "Grade"],
    values = ["Cost", "QTY","ORDER_NUM", "ORDER ID"],
    aggfunc={
        'Cost': 'sum',
        'QTY':'sum', 
        "ORDER_NUM": lambda x: len(x.unique()),
        "ORDER ID": lambda x: len(x.unique())
    }
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 13:27:04