在 Python Pandas Pivot 中使用 stats.trim_mean ass aggfunc

Use stats.trim_mean ass aggfunc in Python Pandas Pivot

我正在尝试使用 pandas 创建一个枢轴,其中聚合函数被截断意味着占用数据每一端的 10%。

    pivot = pd.pivot_table(data[(data['New_category_ID'] > 0)&(data['YYYY'] == 2016)], index = 'New_category',  values=['GrossRevenue_GBP','MOVC_GBP','PM_GBP'],aggfunc=stats.trim_mean(0.1))

我收到以下错误:

TypeError: trim_mean() missing 1 required positional argument: 'proportiontocut'

stats.trim_mean() 采用两个参数,一个是数据,另一个是要从数据的每一端删除的数据百分比。在这种情况下,我指定 10%。

我如何绕过指定 column/dataframe 的需要,它应该采用给定我正在尝试创建数据透视表 table 的修剪平均值?

非常感谢您的帮助

您可以使用 lambda 函数:

pivot = pd.pivot_table(data[(data['New_category_ID'] > 0) & (data['YYYY']==2016)], 
                       index='New_category',
                       values=['GrossRevenue_GBP', 'MOVC_GBP', 'PM_GBP'],
                       aggfunc=lambda x: stats.trim_mean(x, 0.1))