2016-01-28 2 views
0

Я суммирую столбец с фреймворком данных pandas со скаляром, и в результате получается столбец с нулями. Странно то, что иногда он возвращает нули, а иногда и не будет. Если кто-то скажет мне, что это я бы не поверил, поэтому я сделал видео, показывающее этот результат:Столбец Pandas со скалярными результатами в нулях

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

Может кто-нибудь объяснить мне эту черную магию? Я теряю доверие на pandas, и мне действительно нужно, чтобы он работал.

Ok с этим кодом, я могу получить подобную ошибку:

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) 
+0

Пожалуйста, отправьте код, чтобы воспроизвести вашу проблему. –

+0

Это происходит с моим собственным огромным набором данных, который я не могу передать. Я попытаюсь заставить его работать с некоторыми синтетическими наборами данных. Но, как вы видите, код прост. Df ['column'] + scalar @FabioLamanna –

+1

Я не могу воспроизвести вашу ошибку, для меня она работает нормально, и я получаю dataframe с ненулевыми значениями. Можете ли вы опубликовать свои версии python, numpy, pandas? –

ответ