Maison >développement back-end >Tutoriel Python >Comment puis-je filtrer efficacement les DataFrames Pandas à l'aide des opérateurs « IN » et « NOT IN » ?

Comment puis-je filtrer efficacement les DataFrames Pandas à l'aide des opérateurs « IN » et « NOT IN » ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-29 16:22:19838parcourir

How Can I Efficiently Filter Pandas DataFrames Using

Filtrer les dataframes Pandas avec "In" et "Not In" : une solution plus simple

Lorsque vous travaillez avec des dataframes Pandas, il est souvent nécessaire pour filtrer les données en fonction de critères spécifiques. Une exigence courante consiste à rechercher les lignes dans lesquelles une colonne particulière correspond ou ne correspond pas à un ensemble de valeurs prédéfinies, similaire aux opérateurs SQL "IN" et "NOT IN".

Alternative à la fusion- Approche basée

Traditionnellement, certains utilisateurs ont utilisé une approche basée sur la fusion pour réaliser ce filtrage. Bien que fonctionnelle, cette méthode est considérée comme inefficace et inutilement complexe.

Utilisation de pd.Series.isin

La solution idéale réside dans l'utilisation de la fonction pd.Series.isin. Il fournit une fonctionnalité simple pour le filtrage "IN" et "NOT IN".

Filtrage "IN"

Pour filtrer les lignes où une colonne spécifique correspond à une valeur dans un liste fournie, utilisez :

something.isin(somewhere)

"PAS DANS" Filtrage

Alternativement, pour filtrer les lignes où une valeur de colonne ne correspond à aucune valeur dans une liste donnée, utilisez :

~something.isin(somewhere)

Exemple d'utilisation

Considérez ce qui suit exemple :

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})

countries_to_keep = ['UK', 'China']

df_in = df[df.country.isin(countries_to_keep)]
df_not_in = df[~df.country.isin(countries_to_keep)]

print(df_in)
print(df_not_in)

Sortie :

    country
1        UK
3     China
    country
0        US
2   Germany

Comme démontré, pd.Series.isin fournit une méthode concise et efficace pour filtrer les trames de données Pandas. Il élimine le besoin d'approches alambiquées basées sur la fusion, rendant le processus de filtrage à la fois plus simple et plus performant.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn