我有一个模拟的数据框,其中一列是用以下内容创建的:
df = pd.DataFrame({'A': np.arange(1,201)})
这只是一个数据帧,数字为1到200,有一列"a".
df[df["A"] > 20]
但是列名,布尔值,>;,值20必须作为字符串变量传入.所以,我相信数据帧.应使用pandas中的eval函数进行此操作.
def select_twenty(input_df, column_name, boolean_arg, value):
evaluated = input_df.eval(input_df[input_df[column_name] + boolean_arg + value])
return evaluated
在上面的函数中,input_df是上面的模拟数据帧,column_name是所选列的名称,boolean_arg是boolean,>;,而value是值20.最后三个参数在函数调用中作为字符串传递:
select_twenty(df, "A", ">", "20")
当我调用这个函数时,它总是给我一个错误.我在谷歌上搜索过,不知道如何解决它.我也没有见过这样对Pandas 进行判断的例子.