Я использую метод apply для объекта panda DataFrame. Когда мой DataFrame имеет один столбец, кажется, что прикладная функция вызывается дважды. Почему? И могу ли я остановить это поведение?
Код:
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)
Вывод:
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Я печатаю 'hello' из используемой функции. Я знаю, что он применяется дважды, потому что "привет" печатается дважды. Более того, если у меня было два столбца, "привет" печатает 3 раза. Еще более важно то, что я вызываю, чтобы применить только к столбцам "привет" отпечатки 4 раза.
Код:
print df.a.apply(mul2)
Вывод:
hello
hello
hello
hello
0 2.00
1 4.00
2 1.34
3 2.68
Name: a, dtype: float64