pivot_table错误 - InvalidOperation:[<class'minit.invalidoperation'=“”>]

时间:2015-11-29 03:54:58

标签: pandas

上述错误是从一个pivot_table操作引发的,该变量设置为列分组(如果重要,它在format.py模块中失败)

/anaconda/lib/python3.4/site-packages/pandas/core/format.py in __call__(self, num)
   2477         sign = 1
   2478 
-> 2479         if dnum < 0:  # pragma: no cover
   2480             sign = -1
   2481             dnum = -dnum

(Pandas v17.1)

如果我为“问题”创建随机值&#39;变量通过numpy没有错误。

虽然我怀疑它是pivot_table函数的边缘情况,但我无法弄清楚数据方面可能导致问题的原因:

i)变量是来自适度大小的整数序列的第一个整数(例如,来自246的2)(通过df.var.str [0])。

ii)pd.unique(df.var)返回预期的1-9值

iii)没有NaN:notnull(df.var).all()返回True

iv)dtype是int64(或者如果整数被转换为字符串 - 或者设置为标签,这些替代方案仍然会失败并出现相同的错误)

v)使用了一个句点索引 - 它构成了数据透视表的索引。

vi)汇总是&#39; count&#39;

使用具有这些特征的随机值创建另一个变量(来自numpy&randoms.randint的1-9个值) - pivot_table调用有效。如果我把它作为一个字符串,或使用标签,它仍然有效。

同样,我已经玩了一段时间的数据集 - 通常在序列中的其他位置没有问题。但今天 - 首先是造成问题。

可能,这是一个数据问题 - 但为什么没有pivot_table返回空单元格或NaN,而不是在那时失败。

但经过一天的探索后,我感到很茫然。

对于为什么会出现上述错误的任何想法都会非常感激(因为如果是这样的话,它会帮助我追踪数据问题)。

感谢 克里斯

1 个答案:

答案 0 :(得分:1)

最简单的解决方案是通过

重置pandas格式选项
pd.set_option('display.float_format', None)

进一步详情

我遇到了同样的问题。作为一种解决方法,您还可以过滤轮转的数据框以避免结果中出现NaN。

我的问题与pd.set_eng_float_format(2, True)的使用有关。没有这个,所有枢轴都能很好地运作。