Учитывая некоторые данные:
>> s = pd.Series([True, False, True, False, True])
>> ~s.values == (~s).values
array([True, True, True, True, True])
Но
>> ~s.values.sum()
-4
>> (~s).values.sum()
2
И
>> x = ~s.values
>> x.sum() == (~s).values.sum()
True
Почему нам нужно использовать скобки (~s).values
или сохраните ~s.values
в новой переменной, чтобы ~Series.sum()
дал нам правильное количество False
значений в s
?
Это из-за приоритета, как указано@ juanpa.arrivillaga и @cwallenpoole.Действительно:
>> ~3 is -4
True