2016-06-19 14 views
1

Ich habe den folgenden Code ausgeführt und festgestellt, dass er wie erwartet auf eher kleinen Datasets funktioniert, aber nicht auf großen Datasets. Sie können es für sich selbst ausprobieren:Pandas vektorisierte Operationen, die nicht an großen Datenmengen arbeiten

import pandas as pd 
import numpy as np 

# generating dataframe of one million observations 
observations = 1000000 
df = pd.DataFrame(np.random.randint(0,100,size=(observations, 1)), columns=['A']) 

for i in range(50): 
    if (df.A + 2).equals(df.A + 2) == False: 
     print('why?') 

Auf meiner Maschine, die Zeichenfolge "warum?" wird etwa 4 mal gedruckt. Ich habe keine Ahnung, warum ich dieses Ergebnis bekomme, und ich hoffe, dass jemand das Problem beleuchten wird.

+1

Es druckt nichts auf meiner Maschine, scheint Arbeit wie erwartet. – Psidom

+0

Ich habe dies Tausende Male ohne Drucke ausgeführt. – piRSquared

+0

Ich kann das Verhalten nicht reproduzieren, aber das Testen auf exakte Gleichheit auf Fließkommazahlen ist im Allgemeinen unzuverlässig. Was versuchst du eigentlich? – BrenBarn

Antwort

2

Nach der vollständigen Deinstallation aller Python-Versionen und -Pakete habe ich Anaconda neu installiert. Das hat das Problem für mich gelöst. Ich weiß nicht genau die Ursache des Problems, das ich hatte ... Ich muss Pakete oder Versionen von Python durcheinander gebracht haben.

Danke für die Kommentare, die mir geholfen haben zu verstehen, was benötigt wurde!

Verwandte Themen