Я использую pandas 13.0, и я пытаюсь создать новый colum, используя apply() и имя функции foo().Pandas - создать новый столбец с применением для float индексированных dataframe
Мой dataframe выглядит следующим образом:
df = pandas.DataFrame({
'a':[ 0.0, 0.1, 0.2, 0.3],
'b':[10.0, 20.0, 30.0, 40.0],
'c':[ 1.0, 2.0, 3.0, 4.0]
})
df.set_index(df['a'], inplace=True)
Так что мой dataframe является:
in: print df
out:
a b c
a
0.0 0.0 10.0 1.0
0.1 0.1 20.0 2.0
0.2 0.2 30.0 3.0
0.3 0.3 40.0 4.0
Моя функция выглядит следующим образом:
def foo(arg1, arg2):
return arg1*arg2
Теперь я хочу, чтобы создать имя столбца 'd', используя foo();
df['d'] = df.apply(foo(df['b'], df['c']), axis=1)
Но я получаю следующее сообщение об ошибке:
TypeError: ("'Series' object is not callable", u'occurred at index 0.0')
Как я могу использовать pandas.apply() с Foo() для индекса, которые сделаны из поплавка?
Благодаря
большое спасибо за ваш ответ. он работает сейчас. Кроме того, очень полезно сравнение скорости. Еще раз спасибо. – Julien
Не беспокойтесь. Как правило, избегайте использования 'apply', если существует векторная операция, для базовых операций, таких как add/subtract/div и multiply, для поддержки на много порядков встроена поддержка операторов. – EdChum