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
Libérer: 2024-12-17 21:20:19
original
207 Les gens l'ont consulté

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)]
Copier après la connexion

Ce code renvoie le résultat attendu :

    x   y
0   1  10
Copier après la connexion

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

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

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
Copier après la connexion

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 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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal