"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Comment filtrer efficacement les DataFrame ou séries Pandas avec plusieurs conditions ?

Comment filtrer efficacement les DataFrame ou séries Pandas avec plusieurs conditions ?

Publié le 2024-11-01
Parcourir:793

How to Efficiently Filter Pandas DataFrame or Series with Multiple Conditions?

Filtrage efficace d'un cadre de données ou d'une série Pandas avec plusieurs conditions

Pandas fournit un certain nombre de méthodes pour filtrer les données, notamment reindex(), apply() et map() . Toutefois, lors de l'application de plusieurs filtres, l'efficacité devient un problème.

Pour un filtrage optimisé, envisagez d'utiliser l'indexation booléenne. Pandas et Numpy prennent en charge l'indexation booléenne, qui opère directement sur le tableau de données sous-jacent sans créer de copies inutiles.

Voici un exemple d'indexation booléenne :

df.loc[df['col1'] >= 1, 'col1']

Cette expression renvoie une série Pandas contenant uniquement les lignes où les valeurs de la colonne 'col1' sont supérieures ou égales à 1.

À appliquez plusieurs filtres, utilisez les opérateurs logiques '&' (AND) et '|' (OU). Par exemple :

df[(df['col1'] >= 1) & (df['col1'] <=1 )]

Cette expression renvoie un DataFrame contenant uniquement les lignes où les valeurs de la colonne 'col1' sont comprises entre 1 et 1 inclus.

Pour fonctions d'assistance, envisagez de définir des fonctions qui prennent un DataFrame et renvoient une série booléenne, vous permettant de combiner plusieurs filtres à l'aide d'opérateurs logiques.

def b(x, col, op, n):
    return op(x[col],n)

def f(x, *b):
    return x[(np.logical_and(*b))]

Pandas 0.13 introduit la méthode query(), qui fournit un moyen plus efficace d'exprimer des conditions de filtrage complexes. En supposant des identifiants de colonne valides, le code suivant filtre DataFrame df en fonction de plusieurs conditions :

df.query('col1 <= 1 & 1 <= col1')

En résumé, l'indexation booléenne offre une méthode efficace pour appliquer plusieurs filtres aux Pandas DataFrames ou Series sans créer de copies inutiles. Utilisez des opérateurs logiques et des fonctions d'assistance pour combiner plusieurs filtres afin d'obtenir des fonctionnalités étendues.

Déclaration de sortie Cet article est réimprimé à l'adresse : 1729394837. En cas d'infraction, veuillez contacter [email protected] pour le supprimer.
Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3