我有一些問題與熊貓使用具有以下數據框熊貓:如何使用應用功能的多個列
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')
我不明白這個消息,我正確定義了名字。
我將高度讚賞在這個問題上
更新
感謝您的幫助任何幫助。我確實在代碼中犯了一些語法錯誤,索引應該放在''。不過我還有使用更復雜的功能相同的問題,如:
def my_test(a):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff + (a - df['a'][ix])
return cum_diff
謝謝
很久以前,你可能已經從這裏開始了,但我認爲你在Update中定義的函數有一個未定義的變量:df。 – rocarvaj 2017-12-06 14:07:30