Pandas 对标量结果为零的列求和

Pandas sum column with scalar results in zeros

我正在用一个标量对 pandas 数据框的一列求和,结果是一列全是零。奇怪的是,有时它会 return 零,有时则不会。如果有人告诉我这个我不会相信,这就是为什么我制作了一个视频来展示这个结果:

https://dl.dropboxusercontent.com/u/15853805/pandas%20bug.mp4

谁能给我解释一下这个黑魔法?我正在失去对 pandas 的信任,我真的需要它来工作。

好的,使用这段代码我可以得到类似的错误:

import pandas as pd
import numpy as np
from pdb import set_trace as pdb

for _ in xrange(100):
    data = np.random.randint(1,100000,1000000)
    df = pd.DataFrame(data,columns=['column'])
    scalar = np.random.randint(1,100000)
    df.column += scalar
    if df.column.max()==0:
        pdb()

我的数据变量充满了零。是内存问题吗?如果我的数据较小,则不会发生这种情况,但我需要以安全的方式处理大数据!

>> print pandas.__version__
0.17.1
>> print numpy.__version__
1.10.1

Python 2.7.11 |Anaconda 2.4.1 (64-bit)

问题是我的 numexpr=2.4.4 版本更新到 numexpr=2.4.6 解决了这个问题。 Github 问题:https://github.com/pydata/pandas/issues/12167