以下方法可以很好地将包含字符串basket
的列名称删除到df
的列名称中的任何位置,如何修改以下代码以传递要过滤掉的字符串列表而不是一个字符串?
banned_columns = ["basket","cricket","ball"]
condition = lambda col: "basket" in col
new_df = df.drop(*filter(condition, df.columns))
以上内容仅过滤basket
。如何从basket
中过滤出cricket
,ball
和df.columns
?
答案 0 :(得分:3)
内置函数any()
在这里很方便:
condition = lambda col: any(item in col for item in banned_columns)
答案 1 :(得分:3)
您可以使用内置的any()
function来检查排除所有包含任何禁止词的列:
banned_columns = ["basket","cricket","ball"]
condition = lambda col: any(word in col for word in banned_columns)
new_df = df.drop(*filter(condition, df.columns))