如何将用户字符串输入转换为条件,作为参数传递给Python Pandas的drop函数?



在pandas中,如果您想根据条件删除一些行,可以执行以下操作:

df = df.drop(df[(df.score < 50) & (df.score > 20)].index)

主要变化部分是表示条件的以下部分:

(df.score < 50) & (df.score > 20)

我正试图在此基础上创建自己的函数。

def drop_condition(df, cond_in_str):
df.drop(df[cond_in_str].index, inplace=True)

这样称呼它:

drop_condition(df, 'df.score < 50')
KeyError: 'df.score < 50'

如何将条件字符串转换为Pandas drop函数将识别的参数条件?

您需要使用pandas.DataFrame.query((,它将表达式作为string

def drop_condition(df, cond_in_str):
df.drop(df.query(cond_in_str).index)

您可以按原样使用函数,只需不加引号:

drop_condition(df, df.score < 50)

创建另一个变量并分配给它怎么样?然后在功能中使用

check_val = df.score > 50
(drop_condition(df, check_val))

相关内容

  • 没有找到相关文章

最新更新