Warum gelten Pandas zweimal berechnen
Ich verwende die Methode apply für das DataFrame-Objekt eines Pandas. Wenn mein DataFrame eine einzelne Spalte enthält, wird die angewendete Funktion anscheinend zweimal aufgerufen. Die Fragen sind warum? Und kann ich dieses Verhalten stoppen?
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)
Ausgabe:
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Ich drucke 'Hallo' aus der angewendeten Funktion heraus. Ich weiß, dass es zweimal angewendet wird, weil "Hallo" zweimal gedruckt wurde. Was mehr ist, ist, dass, wenn ich zwei Spalten hatte, "Hallo" dreimal gedruckt wird. Noch schlimmer ist es, wenn ich anrufe, dass nur die Spalte "Hallo" viermal gedruckt wird.
Code:
print df.a.apply(mul2)
Ausgabe:
hello
hello
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Name: a, dtype: float64