创建多个筛选器并应用于数据帧

2024-09-27 23:20:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我为一个数据帧创建了多个过滤器:

filt1 = ~df["message"].str.contains("<Media omitted>", na=False),
filt2 = ~df["message"].str.contains("http://", na=False),
filt3 = ~df["message"].str.contains("Dropped pin", na=False), 

我可以使用以下方法过滤数据帧:

df[filt1 & filt2 & filt3]

但当我添加更多过滤器时,这似乎是一种愚蠢的过滤方式。 如何将多个筛选器应用于数据帧

我尝试将每个过滤器添加到列表中,执行df[filterlist]df[*filterlist]操作,但这些操作不起作用


Tags: 数据falsehttp过滤器messagedfmediana
2条回答

您可以使用join合并正则表达式的列表

df[~df.message.str.contains('|'.join(filterlist))]

您可以使用np.logical_and.reduce

filterlist = [filt1, filt2, filt3]

df[np.logical_and.reduce(filterlist)]

^{}^{}用于测试每行的所有True

df[pd.concat(filterlist, axis=1).all(axis=1)]

如果可能,将|用于正则表达式or

filt = ~df["message"].str.contains("<Media omitted>|http://|Dropped pin", na=False)

相关问题 更多 >

    热门问题