87 votes

Enlever les lignes qui ne sont pas .isin('X')

Désolé, je viens juste de me mettre à Pandas, mais cette question semble être très simple. Comment puis-je utiliser le isin('X') pour supprimer les lignes qui sont en la liste X ? En R, j'écrirais !which(a %in% b) .

127voto

Jonny Brooks Points 1204

Vous avez de nombreuses possibilités. En rassemblant certaines des réponses ci-dessus et les réponse acceptée de ce poste vous pouvez faire :
1. df[-df["column"].isin(["value"])]
2. df[~df["column"].isin(["value"])]
3. df[df["column"].isin(["value"]) == False]
4. df[np.logical_not(df["column"].isin(["value"]))]

Note : pour l'option 4, vous devrez import numpy as np

Mise à jour : Vous pouvez également utiliser le .query pour cela aussi. Cela permet enchaînement de méthodes :
5. df.query("column not in @values") .
values est une liste des valeurs que vous ne voulez pas inclure.

75voto

bmu Points 7109

Vous pouvez utiliser numpy.logical_not pour inverser le tableau booléen retourné par isin :

In [63]: s = pd.Series(np.arange(10.0))

In [64]: x = range(4, 8)

In [65]: mask = np.logical_not(s.isin(x))

In [66]: s[mask]
Out[66]: 
0    0
1    1
2    2
3    3
8    8
9    9

Comme indiqué dans le commentaire de Wes McKinney, vous pouvez également utiliser

s[~s.isin(x)]

28voto

atm Points 641

Tout ce que vous avez à faire est de créer un sous-ensemble de votre cadre de données où la méthode isin est évaluée à False :

df = df[df['Column Name'].isin(['Value']) == False]

5voto

Andy Hayden Points 38010

Vous pouvez utiliser le DataFrame.select méthode :

In [1]: df = pd.DataFrame([[1,2],[3,4]], index=['A','B'])

In [2]: df
Out[2]: 
   0  1
A  1  2
B  3  4

In [3]: L = ['A']

In [4]: df.select(lambda x: x in L)
Out[4]: 
   0  1
A  1  2

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