Вы правильно используете &
, но оно используется не по назначению.Это логическая проблема.Примечание:
(NOT X) AND (NOT Y) != NOT(X AND Y)
Вместо этого вы можете вычислить отрицательное значение логического условия с помощью оператора ~
:
totes = df3.loc[~((df3['Reporting Date'] == '18/08/2017') & (df3['Business Line'] == 'Bondy'))]
Эти скобки и маски могут запутаться, поэтому вы можете написатьэто более ясно:
m1 = df3['Reporting Date'].eq('18/08/2017')
m2 = df3['Business Line'].eq('Bondy')
totes = df3.loc[~(m1 & m2)]
В качестве альтернативы обратите внимание, что:
NOT(X & Y) == NOT(X) | NOT(Y)
Так что вы можете использовать:
m1 = df3['Reporting Date'].ne('18/08/2017')
m2 = df3['Business Line'].ne('Bondy')
totes = df3.loc[m1 | m2]