Search code examples
pandasseries

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


I have two pandas series,

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

Expected result,

0    False

1     True

2    False

3    False

4    False

How to compare these two pandas series? I want to compare the s1 series with s2 and keep the value of the s1 series if there is no match.


Solution

  • Use & for bitwise AND with inverting mask by ~:

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