我正在处理一个pandas数据帧df
。根据{{1}}中的某些条件,我想将df
(1)传递给用户定义的函数df
或(2)传递给filter()
。
条件的代码是:
calculate_Result()
但是,我正在产生if df.Col1.str.contains("yes").sum() > 0:
df = filter_df
filter() # Loop
else:
df = calculate_df
calculate_result() # End
当我放UnboundLocalError: local variable referenced before assignment.
&函数定义本身的df = calculate_df
赋值:
df = filter_df
和
def filter():
df = filter_df
...
无论我把作业放在哪里,我都会屈服于def calculate_results():
df = calculate_df()
...
如何正确地将局部变量传递给pandas中的用户定义函数?
答案 0 :(得分:0)
这与将变量传递给函数无关。
您已使用名称df
来引用全局模块 - df.Col1...
和filter_df
的结果。这会导致您看到的错误。
为局部变量使用不同的名称。