Python 如何将多个掩码同时应用于数据帧?
我已经为我的Python 如何将多个掩码同时应用于数据帧?,python,pandas,Python,Pandas,我已经为我的df设置了三个掩码,我想过滤掉这些值 例如,一些随机遮罩: mask1 = df['column1'].isnull() mask2 = df['column2'] > 5 mask3 = df['column3'].str.contains('hello') 现在,如何组合这些遮罩以过滤出这些值? 这是正确的方法吗?同时使用~和| masked_df = df[~mask1 | ~mask2 | ~mask3] 我的数据框中有这么多行,我无法100%确定手动检查是否正确
df
设置了三个掩码,我想过滤掉这些值
例如,一些随机遮罩:
mask1 = df['column1'].isnull()
mask2 = df['column2'] > 5
mask3 = df['column3'].str.contains('hello')
现在,如何组合这些遮罩以过滤出这些值?
这是正确的方法吗?同时使用~
和|
masked_df = df[~mask1 | ~mask2 | ~mask3]
我的数据框中有这么多行,我无法100%确定手动检查是否正确 您的解决方案很好,但也可以使用按位
和
以及反向链接条件:
masked_df = df[~(mask1 & mask2 & mask3)]
若遮罩在列表中,则上述解决方案将重写为:
您的解决方案很好,但也可以使用按位
和
以及反向链接条件:
masked_df = df[~(mask1 & mask2 & mask3)]
若遮罩在列表中,则上述解决方案将重写为:
我觉得不错。但是为什么不将条件翻转为
df['column1'].notnull()
和mask2=df['column2']<5
?因为我的大脑不是那样工作的:)。我想创建像mask1=我不想要这样的遮罩。
和mask2=我不想要那样的遮罩
等等。这取决于你是想过滤掉填充所有条件的行,然后你是对的,还是想过滤掉填充任何条件的行,在这种情况下,你应该使用&
而不是|
看起来不错。但是为什么不将条件翻转为df['column1'].notnull()
和mask2=df['column2']<5
?因为我的大脑不是那样工作的:)。我想创建像mask1=我不想要这样的遮罩。
和mask2=我不想要那样的遮罩
等等。这取决于你是想过滤掉填充所有条件的行,然后你是对的,还是想过滤掉填充任何条件的行,在这种情况下,您应该使用&
而不是|