Opérateurs logiques pour l'indexation booléenne dans Pandas
Lorsque vous travaillez avec l'indexation booléenne dans Pandas, on peut rencontrer une erreur en essayant d'utiliser le et opérateur directement avec les comparaisons de séries, comme le montre l'exemple suivant :
a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Cela entraînera un ValueError car Python ne peut pas attribuer de valeur booléenne à un tableau comportant plusieurs éléments. Au lieu de cela, nous devons utiliser l'opérateur & pour les opérations logiques et par éléments :
a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
Cette distinction se produit parce que l'opérateur and effectue une évaluation booléenne, tandis que l'opérateur & effectue des opérations logiques par éléments. Lors de l'évaluation des comparaisons de séries avec et, Python est incapable de déterminer comment gérer l'ambiguïté liée à l'attribution d'une valeur booléenne à une collection d'éléments.
Pour garantir des opérations logiques correctes au niveau des éléments, les parenthèses sont cruciales dans les expressions impliquant le & opérateur. Négliger les parenthèses peut conduire à un ordre d'évaluation involontaire, tel que :
a['x']==1 & a['y']==10
Ce qui serait interprété comme :
(a['x'] == 1) & (a['y'] == 10)
Au lieu de cela, l'expression correcte est :
(a['x']==1) & (a['y']==10)
En comprenant la distinction entre l'évaluation booléenne et les opérations logiques par éléments, vous pouvez utiliser efficacement les opérateurs logiques pour l'indexation booléenne dans Pandas.
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!