【发布时间】:2017-08-09 09:54:02
【问题描述】:
我正在尝试使用 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() 缺少 1 个必需的位置参数:'proportiontocut'
stats.trim_mean() 接受两个参数,一个是数据,另一个是要从数据的每一端删除的数据百分比。在这种情况下,我指定 10%。
如果我正在尝试创建数据透视表,我该如何解决指定列/数据框的需求?
非常感谢一些帮助
【问题讨论】:
-
aggfunc=lambda x: stats.trim_mean(x, 0.1) -
@ayhan - 非常感谢。它运行完美,但是当我使用 Excel 进行验证时,似乎 Excel 的修剪平均值与 Python 给出的修剪平均值不同。现在需要决定哪个是正确的......如果你把它作为一个答案,我会批准它
-
这可能是他们计算百分位数的方式造成的差异(有几种方法)。
-
最有可能......在进一步验证中,当我说在 Python 中截断平均值为 0.5(即中位数)并将其与 Excel 中计算的中位数进行比较时,它们是相同的。但是,当我在 Excel 中截断平均值 0.5 时,它给出的结果与在 Excel 中计算的中位数不同。我将使用 Python 截断的平均结果。再次感谢
标签: python pandas pivot mean truncated