У меня есть некоторые проблемы с функцией приложения Pandas при использовании нескольких столбцов со следующим фреймворком данных
df = DataFrame ({'a' : np.random.randn(6),
'b' : ['foo', 'bar'] * 3,
'c' : np.random.randn(6)})
и следующей функции
def my_test(a, b):
return a % b
Когда я пытаюсь применить эту функцию с помощью:
df['Value'] = df.apply(lambda row: my_test(row[a], row[c]), axis=1)
Я получаю сообщение об ошибке:
NameError: ("global name 'a' is not defined", u'occurred at index 0')
Я не понимаю этого сообщения, я правильно определил имя.
Я был бы очень признателен за любую помощь по этой проблеме
Update
Спасибо за вашу помощь. Я сделал некоторые синтаксические ошибки с кодом, индекс должен быть помещен ''. Однако у меня есть еще одна проблема с использованием более сложной функции, например:
def my_test(a):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff + (a - df['a'][ix])
return cum_diff
Спасибо