J'ai quelques problèmes avec la fonction Pandas apply, lors de l'utilisation de colonnes multiples avec le dataframe suivant
df = DataFrame ({'a' : np.random.randn(6),
'b' : ['foo', 'bar'] * 3,
'c' : np.random.randn(6)})
et la fonction suivante
def my_test(a, b):
return a % b
Lorsque j'essaie d'appliquer cette fonction avec :
df['Value'] = df.apply(lambda row: my_test(row[a], row[c]), axis=1)
Je reçois le message d'erreur :
NameError: ("global name 'a' is not defined", u'occurred at index 0')
Je ne comprends pas ce message, j'ai défini le nom correctement.
J'apprécierais grandement toute aide sur cette question
Mise à jour
Merci pour votre aide. J'ai effectivement fait quelques erreurs de syntaxe avec le code, l'index devrait être mis ''. Cependant, j'obtiens toujours le même problème en utilisant une fonction plus complexe telle que :
def my_test(a):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff + (a - df['a'][ix])
return cum_diff