Maison >développement back-end >Tutoriel Python >Indexation booléenne Pandas : pourquoi utiliser '&' au lieu de 'et' ?

Indexation booléenne Pandas : pourquoi utiliser '&' au lieu de 'et' ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-13 03:45:10146parcourir

Pandas Boolean Indexing: Why Use

Opérateurs logiques pour l'indexation booléenne dans Pandas

Lorsque vous travaillez avec l'indexation booléenne dans Pandas, il est important de comprendre la différence entre les opérateurs logiques " &" et "et".

Question :Pourquoi ce qui suit l'instruction fonctionne sans erreur :

a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]

mais l'instruction suivante se termine avec une erreur :

a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]

Réponse :

Le "et" L'opérateur en Python convertit implicitement ses opérandes en valeurs booléennes. Cependant, lorsqu'il s'agit de tableaux NumPy (et de Pandas Series, qui sont basés sur des tableaux NumPy), cette conversion peut conduire à des ambiguïtés.

Lors de l'évaluation de la valeur de vérité d'un tableau contenant plusieurs éléments, il n'est pas clair s'il doit être considéré comme vrai si :

  • Tous ses éléments sont vrais
  • Tous ses éléments sont True
  • Il a une longueur non nulle

Pour éviter cette ambiguïté, NumPy et Pandas nécessitent une évaluation booléenne explicite en utilisant "any()", "all()" ou Méthodes "empty()".

Dans le cas de l'indexation booléenne, nous ne voulons pas d'évaluation booléenne mais plutôt d'opérations logiques par éléments. C'est là que l'opérateur "&" entre en jeu.

L'opérateur "&" effectue une opération ET logique par élément. Il renvoie un tableau booléen où chaque élément est le résultat du ET logique des éléments correspondants dans les tableaux d'entrée.

Exemple :

import pandas as pd

a = pd.DataFrame({'x':[1,1],'y':[10,20]})

print(a[(a['x']==1) & (a['y']==10)])

Sortie :

   x   y
0  1  10

Dans cet exemple, l'opérateur "&" est utilisé pour rechercher les lignes où les colonnes "x" et "y" rencontrent les critères spécifiés.

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