pandas创建pivot table为不同值配置不同聚合函数及count未定义报错问题
报错原因
name 'count' not defined报错是因为代码中使用的count没有被提前定义,Python无法识别该变量- 即使你定义了普通计数的
count方法,也不符合你要求的去重计数需求
正确代码
pandas内置了nunique方法直接实现去重计数,无需自定义函数,修改后代码如下:
import numpy as np df1.pivot_table( index=["Unit", "Grade"], values=["Cost", "Quantity", "Transaction_num", "Order_num"], aggfunc={ "Cost": np.sum, "Quantity": np.sum, "Transaction_num": "nunique", "Order_num": "nunique" } )
如果需要保留你原来写法里的多层列名结构(aggfunc值套列表),可以改成:
df1.pivot_table( index=["Unit", "Grade"], values=["Cost", "Quantity", "Transaction_num", "Order_num"], aggfunc={ "Cost": [np.sum], "Quantity": [np.sum], "Transaction_num": ["nunique"], "Order_num": ["nunique"] } )
内容的提问来源于stack exchange,提问作者alwayzconfused
相关产品推荐
相关产品推荐

