将两个 pandas 系列与条件进行比较,如果条件匹配则分配 False 否则保留第一个系列的值

Compare two pandas series with a condition and assign False if a condition is matched else keep the value of first series

我有两个pandas系列,

s1 = pd.Series([False, True, False, True, False], index= np.arange(0,5))

0    False

1     True

2    False

3     True

4    False

dtype: bool

s2 = pd.Series([False, False, False, True, True], index= np.arange(0,5))

0    False

1    False

2    False

3     True

4     True

dtype: bool

预期结果,

0    False

1     True

2    False

3    False

4    False

如何比较这两个pandas系列? 我想比较s1系列和s2系列,如果不匹配就保留s1系列的值

使用 & 按位 AND 并通过 ~:

反转掩码
print (s1 & ~s2)
0    False
1     True
2    False
3    False
4    False
dtype: bool