2 votes

Filtrer un cadre de données avec les conditions NOT et AND

Je sais que cette question a été posée plusieurs fois, mais pour une raison quelconque, elle ne fonctionne pas dans mon cas.

Je veux donc filtrer le cadre de données en utilisant les conditions NOT et AND. Par exemple, mon dataframe df ressemble à ceci :

col1    col2
a       1
a       2
b       3
b       4
b       5
c       6

Maintenant, je veux utiliser une condition pour supprimer où col1 has "a" AND col2 has 2 Le cadre de données résultant devrait ressembler à ceci :

col1    col2
a       1
b       3
b       4
b       5
c       6

J'ai essayé ça : Même si j'ai utilisé & mais il supprime toutes les lignes qui ont "a" dans col1 .

df = df[(df['col1'] != "a") & (df['col2'] != "2")]

2voto

Mr Geek Points 6389

Pour enlever les cellules où col1 is "a" AND col2 is 2 permet de garder les cellules où col1 isn't "a" OR col2 isn't 2 (négation de A AND B es NOT(A) OR NOT(B) ) :

df = df[(df['col1'] != "a") | (df['col2'] != 2)]   #   or "2", depending on whether the `2` is an int or a str

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X