上述错误是从一个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,而不是在那时失败。
但经过一天的探索后,我感到很茫然。
对于为什么会出现上述错误的任何想法都会非常感激(因为如果是这样的话,它会帮助我追踪数据问题)。
感谢 克里斯
答案 0 :(得分:1)
最简单的解决方案是通过
重置pandas格式选项pd.set_option('display.float_format', None)
进一步详情
我遇到了同样的问题。作为一种解决方法,您还可以过滤轮转的数据框以避免结果中出现NaN。
我的问题与pd.set_eng_float_format(2, True)
的使用有关。没有这个,所有枢轴都能很好地运作。