Maison > développement back-end > Tutoriel Python > Comment puis-je effectuer efficacement le filtrage SQL IN et NOT IN dans Pandas ?

Comment puis-je effectuer efficacement le filtrage SQL IN et NOT IN dans Pandas ?

Susan Sarandon
Libérer: 2024-12-20 20:05:17
original
378 Les gens l'ont consulté

How Can I Efficiently Perform SQL's IN and NOT IN Filtering in Pandas?

Filtrage de type SQL orienté objet dans Pandas

Le filtrage des trames de données Pandas est une tâche cruciale dans l'analyse des données et la compréhension de la façon d'utiliser efficacement Les opérateurs de type SQL peuvent grandement simplifier ce processus. Plus précisément, les opérateurs IN et NOT IN sont largement utilisés pour sélectionner des lignes en fonction de critères d'appartenance.

Pandas Équivalent des IN et NOT IN de SQL

Pour obtenir l'équivalent de Opérateur IN de SQL dans Pandas, vous pouvez exploiter la méthode isin() sur une série. Cette méthode vérifie si chaque élément de la série est contenu dans une liste ou un ensemble spécifié. Par exemple, pour filtrer un dataframe en fonction d'une liste de pays à inclure :

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})
countries_to_keep = ['UK', 'China']
df[df['country'].isin(countries_to_keep)]
Copier après la connexion

Cela renverra un dataframe contenant uniquement les lignes où les valeurs de la colonne country sont présentes dans la liste country_to_keep.

Pour effectuer l'équivalent de NOT IN de SQL, annulez simplement la méthode isin() en utilisant l'opérateur ~ :

df[~df['country'].isin(countries_to_keep)]
Copier après la connexion

Cela produira un dataframe excluant les lignes où les valeurs de la colonne country correspondent à la liste spécifiée.

Exemple

Considérez le dataframe suivant :

df = pd.DataFrame({'country': ['US', 'UK', 'Germany', 'China']})
countries_to_keep = ['UK', 'China']
Copier après la connexion

Pour sélectionner uniquement lignes avec des pays dans country_to_keep :

df_filtered_in = df[df['country'].isin(countries_to_keep)]
Copier après la connexion

Cela entraînera dans :

    country
1        UK
3     China
Copier après la connexion

Pour sélectionner des lignes avec des pays qui ne figurent pas dans country_to_keep :

df_filtered_not_in = df[~df['country'].isin(countries_to_keep)]
Copier après la connexion

Cela produira :

    country
0        US
2   Germany
Copier après la connexion

Conclusion

La méthode isin() dans Pandas fournit un moyen pratique et efficace d'implémenter un filtrage de style IN et NOT IN, offrant un outil puissant pour manipuler des dataframes en fonction de critères d'adhésion.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal