Pandas pivot_table:使用aggfunc len(x.unique())和margins = True这是一个非常令人惊讶的结果

时间:2017-02-01 10:34:15

标签: python pandas unique pivot-table

我正在使用pandas pivot_table和aggfunc = lambda x:len(x.unique()),其中marginins = True。但是我得到了一个非常令人惊讶的结果:专栏' All'不显示行值的总和!列中的结果' All'系统地小于总和。

enter image description here

怎么可能?

1 个答案:

答案 0 :(得分:2)

在花了几个小时检查所有数据并使用Excel数据透视表功能来了解这里发生了什么之后,我发现了以下(并且非常令人惊讶)的解释: margin = True不计算行的总和,但通过将其应用于所有列(忽略pivot_table'colins'参数)重新执行aggfunc = lambda x:len(x.unique())命令。这解释了为什么显示的总和总是小于真实总和! 因此,必须非常小心地使用margin = true和aggfunc = lambda x:len(x.unique())。结果可能无法预测......