Maison >développement back-end >Tutoriel Python >Indexation booléenne Pandas : pourquoi utiliser '&' au lieu de 'et' ?
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 :
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!