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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage