Comment vérifier si une valeur est dans la liste de sélection de pandas bloc de données?
Semble laid:
df_cut = df_new[
(
(df_new['l_ext']==31) |
(df_new['l_ext']==22) |
(df_new['l_ext']==30) |
(df_new['l_ext']==25) |
(df_new['l_ext']==64)
)
]
Ne fonctionne pas:
df_cut = df_new[(df_new['l_ext'] in [31, 22, 30, 25, 64])]
Est-il un élégant et de travail de la solution du "problème"?
OriginalL'auteur Roman | 2013-08-15
Vous devez vous connecter pour publier un commentaire.
Utilisation isin
pandas
syntaxe... Vous ne saurez pas si vous le savez.Quel est le négatif de l'isin? Je suis à la recherche d'un moyen de filtrer les éléments de la liste.
numpy.logical_not(foo.isin(x)) et une autre méthode suggérée par les Pandas auteur: stackoverflow.com/questions/14057007/remove-rows-not-isinx
De la négation à l'aide de ~ devrait être suffisant pour faire pas isin. df_new[~df_new['l_ext'].isin([31, 22, 30, 25, 64])]
OriginalL'auteur waitingkuo
Vous pouvez utiliser
mp.DataFrame.requête
:En arrière-plan, il utilise le haut-niveau
mp.eval
fonction.OriginalL'auteur jpp