Heim > Backend-Entwicklung > Python-Tutorial > Pandas Boolesche Indizierung: Warum „&' anstelle von „und' verwenden?

Pandas Boolesche Indizierung: Warum „&' anstelle von „und' verwenden?

Linda Hamilton
Freigeben: 2024-12-13 03:45:10
Original
137 Leute haben es durchsucht

Pandas Boolean Indexing: Why Use

Logische Operatoren für die boolesche Indizierung in Pandas

Bei der Arbeit mit der booleschen Indizierung in Pandas ist es wichtig, den Unterschied zwischen den logischen Operatoren zu verstehen. &“ und „und“.

Frage:Warum passiert Folgendes Anweisung funktioniert ohne Fehler:

a[(a['some_column']==some_number) & (a['some_other_column']==some_other_number)]
Nach dem Login kopieren

aber die folgende Anweisung wird mit einem Fehler beendet:

a[(a['some_column']==some_number) and (a['some_other_column']==some_other_number)]
Nach dem Login kopieren

Antwort:

Das „und“ Der Operator in Python konvertiert seine Operanden implizit in boolesche Werte. Beim Umgang mit NumPy-Arrays (und Pandas-Serien, die auf NumPy-Arrays basieren) kann diese Konvertierung jedoch zu Mehrdeutigkeiten führen.

Bei der Bewertung des Wahrheitswerts eines Arrays mit mehreren Elementen ist unklar, ob dies der Fall sein sollte gilt als wahr, wenn:

  • Alle seine Elemente wahr sind
  • Jedes seiner Elemente ist wahr Wahr
  • Es hat eine Länge ungleich Null

Um diese Mehrdeutigkeit zu vermeiden, erfordern NumPy und Pandas eine explizite boolesche Auswertung mit „any()“, „all()“ oder „empty()“-Methoden.

Bei der booleschen Indizierung wollen wir keine boolesche Auswertung, sondern elementweise logische Operationen. Hier kommt der „&“-Operator ins Spiel.

Der „&“-Operator führt eine elementweise logische UND-Verknüpfung durch. Es wird ein boolesches Array zurückgegeben, in dem jedes Element das Ergebnis der logischen UND-Verknüpfung der entsprechenden Elemente in den Eingabearrays ist.

Beispiel:

import pandas as pd

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

print(a[(a['x']==1) & (a['y']==10)])
Nach dem Login kopieren

Ausgabe:

   x   y
0  1  10
Nach dem Login kopieren

In diesem Beispiel wird der „&“-Operator verwendet, um Zeilen zu finden, in denen sowohl die „x“-Spalte als auch die „y“-Spalte aufeinandertreffen angegebenen Kriterien.

Das obige ist der detaillierte Inhalt vonPandas Boolesche Indizierung: Warum „&' anstelle von „und' verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage