当使用具有以下数据框的多个列时,我的 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')
我不明白此消息,我正确定义了名称。
我非常感谢在这个问题上的任何帮助
更新
谢谢你的帮助。我确实在代码中犯了一些语法错误,索引应该放在''。但是,我仍然使用更复杂的功能遇到同样的问题,例如:
def my_test(a):
cum_diff = 0
for ix in df.index():
cum_diff = cum_diff + (a - df['a'][ix])
return cum_diff