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-17 21:20:19113parcourir

Pandas Boolean Indexing: Why Use `&` Instead of `and`?

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

Lors de l'indexation booléenne dans Pandas, il est crucial de comprendre la différence entre les opérateurs logiques & (ET au niveau du bit) et et ( AND logique).

Pourquoi utiliser & over et pour Boolean Indexation ?

Considérons l'exemple suivant :

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

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

Ce code renvoie le résultat attendu :

    x   y
0   1  10

Cependant, si vous utilisez et au lieu de &, vous' Je rencontrerai une erreur :

a[(a['x'] == 1) and (a['y'] == 10)]
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

Comprendre l'erreur

L'erreur se produit parce que et essaie d'évaluer la véracité de chaque série individuellement (a['x'] et a['y']). Cependant, ces séries n'ont pas de valeur booléenne claire, ce qui conduit à une erreur de valeur de vérité ambiguë.

En revanche, l'opérateur au niveau du bit & effectue des opérations logiques au niveau des éléments. Il renvoie un tableau booléen où chaque élément représente le résultat de l'opération entre les éléments correspondants dans a['x'] et a['y']. Cela vous permet de créer un masque booléen pour l'indexation.

Parenthèses : une exigence obligatoire

Notez qu'il est obligatoire d'utiliser des parenthèses lors de l'utilisation de &. Sans eux, l'opération serait mal évaluée en raison de la priorité d'opérateur plus élevée de & over ==.

a['x'] == 1 & a['y'] == 10  # Incorrect: Triggers the error

(a['x'] == 1) & (a['y'] == 10)  # Correct: Boolean indexing works as expected

Conclusion

Lors de l'indexation booléenne dans Pandas, utilisez toujours l'opérateur & pour opérations logiques par éléments. Cela garantit une évaluation appropriée et évite l'erreur de valeur de vérité ambiguë.

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