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

DDD
Libérer: 2024-10-20 11:56:02
original
364 Les gens l'ont consulté

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

Filtrage efficace d'un dataFrame 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() . Cependant, 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 :

<code class="python">df.loc[df['col1'] >= 1, 'col1']</code>
Copier après la connexion

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

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

<code class="python">df[(df['col1'] >= 1) &amp; (df['col1'] <=1 )]</code>
Copier après la connexion

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

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

<code class="python">def b(x, col, op, n):
    return op(x[col],n)

def f(x, *b):
    return x[(np.logical_and(*b))]</code>
Copier après la connexion

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 :

<code class="python">df.query('col1 <= 1 &amp; 1 <= col1')</code>
Copier après la connexion

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 pour des fonctionnalités étendues.

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
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!