ich auf einem Pandas Dataframe-Objekt die Methode apply bin mit. Wenn mein DataFrame eine einzelne Spalte hat, scheint die angewandte Funktion zweimal aufgerufen zu werden. Die Fragen sind warum? Und, kann ich dieses Verhalten stoppen?Warum Pandas berechnen anwenden zweimal
Code:
import pandas as pd
def mul2(x):
print 'hello'
return 2*x
df = pd.DataFrame({'a': [1,2,0.67,1.34]})
print df.apply(mul2)
Ausgang:
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
ich drucke 'Hallo' innerhalb der Funktion angewendet wird. Ich weiß, dass es zweimal angewendet wird, weil 'Hallo' zweimal gedruckt wird. Wenn ich zwei Spalten habe, druckt 'Hallo' dreimal. Noch mehr ist, wenn ich nur die Spalte 'Hallo' anrufe, die 4 Mal gedruckt wird.
Code:
print df.a.apply(mul2)
Ausgang:
hello
hello
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Name: a, dtype: float64
Die Funktion, die ich verwende, ist rekursiv. Ich versuche zu vermeiden, dass die rekursive Berechnung mehr als nötig ausgeführt wird. Im Moment ist es kein Problem, aber es könnte sein. – piRSquared