如何同时对一个数据帧应用多个掩码?

2024-09-27 07:22:57 发布

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

我已经为我的df设置了三个掩码,我想过滤掉这些值

例如,一些随机遮罩:

mask1 = df['column1'].isnull()
mask2 = df['column2'] > 5
mask3 = df['column3'].str.contains('hello')

现在,如何组合这些掩码以过滤出这些值? 这样对吗?同时使用~|

masked_df = df[~mask1 | ~mask2 | ~mask3]

我的数据帧中有这么多行,我无法100%确定手动检查是否正确


Tags: 数据hellodf手动column1contains掩码str
1条回答
网友
1楼 · 发布于 2024-09-27 07:22:57

您的解决方案很好,但也可以使用按位AND和反向链接条件:

masked_df = df[~(mask1 & mask2 & mask3)]

若掩码在列表中,则用^{}重写上面的解决方案:

masks = [mask1, mask2, mask3]

m = df[~np.logical_and.reduce(masks)]
print (m)
   A  column1  column2 column3
2  c      4.0        9   hello
3  d      5.0        4   hello
4  e      5.0        2   hello
5  f      4.0        3   hello

相关问题 更多 >

    热门问题