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
我正在用一个标量对 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