如何在Python中将可互操作列表传递给lambda函数?

时间:2018-07-17 10:26:41

标签: python

以下方法可以很好地将包含字符串basket的列名称删除到df的列名称中的任何位置,如何修改以下代码以传递要过滤掉的字符串列表而不是一个字符串?

banned_columns = ["basket","cricket","ball"]
condition = lambda col: "basket" in col
new_df = df.drop(*filter(condition, df.columns))

以上内容仅过滤basket。如何从basket中过滤出cricketballdf.columns

2 个答案:

答案 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))