Я использую метод apply на объекте DataFrame panda. Когда мой DataFrame имеет один столбец, кажется, что прикладная функция вызывается дважды. Почему? И могу ли я остановить это поведение?Зачем применять pandas дважды вычислять
Код:
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
я печатаю 'привет' из функции применяется. Я знаю, что он применяется дважды, потому что «привет» печатается дважды. Более того, если бы у меня было два столбца, «привет» печатает 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
Функция, которую я использую, рекурсивна. Я пытаюсь избежать этого, делая рекурсивный расчет больше, чем нужно. Прямо сейчас, это не проблема, но это может быть. – piRSquared