#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
Ожидаемый результат,
0 False
1 True
2 False
3 False
4 False
Как сравнить эти две серии панд?
Я хочу сравнить серию s1 с s2 и сохранить значение серии s1, если совпадения нет.
Ответ №1:
Используйте amp;
для побитовой AND
с инвертирующей маской по ~
:
print (s1 amp; ~s2)
0 False
1 True
2 False
3 False
4 False
dtype: bool
Комментарии:
1. Израэль, ты можешь хоть раз объяснить мне эту логику?
2. @Rohit — Инвертирующая маска означает изменение True на False и Fale на True, поэтому серия
pd.Series([False, False, False, True, True], index= np.arange(0,5))
изменяется наpd.Series([True, True, True, False, False], index= np.arange(0,5))
.AND
означает , что выводTrue
, если обаs1
иs2
являются истинными, так что здесь только значения для индекса1
3. Израэль, спасибо за объяснение.