Mam pewne problemy z Pand funkcji, stosuje się podczas korzystania z wielu kolumn z następującym dataframePandy: Jak korzystać z zastosowania funkcji do wielu kolumn
df = DataFrame ({'a' : np.random.randn(6),
'b' : ['foo', 'bar'] * 3,
'c' : np.random.randn(6)})
i następującej funkcji
def my_test(a, b):
return a % b
Kiedy Próbuję zastosować tę funkcję z:
df['Value'] = df.apply(lambda row: my_test(row[a], row[c]), axis=1)
Otrzymuję komunikat o błędzie:
NameError: ("global name 'a' is not defined", u'occurred at index 0')
Nie rozumiem tej wiadomości, prawidłowo zdefiniowałem nazwę.
Gorąco wdzięczni za każdą pomoc w tej sprawie
aktualizacji
Dzięki za pomoc. Wprowadziłem kilka błędów składniowych wraz z kodem, należy umieścić indeks "". Jednak nadal mam ten sam problem przy użyciu bardziej złożonych funkcji, takich jak:
def my_test(a):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff + (a - df['a'][ix])
return cum_diff
Dziękuję
Prawdopodobnie przeniosłeś się z tego dawno temu, ale myślę, że funkcja zdefiniowana w aktualizacji ma niezdefiniowaną zmienną: df. – rocarvaj