Mehrdeutiger Wahrheitswert in Pandas-Reihen: Filterung mit ODER-Bedingung
Wir stoßen auf den Fehler „Der Wahrheitswert einer Reihe ist mehrdeutig“, wenn Es wird versucht, einen DataFrame mithilfe einer ODER-Bedingung zu filtern, wie unten gezeigt:
df = df[(df['col'] < -0.25) or (df['col'] > 0.25)]
Dieser Fehler ist auf die Mehrdeutigkeit von zurückzuführen Wahrheitswerte in der Pandas-Serie. Um das Problem zu lösen, sollten wir stattdessen „bitweise“ Operatoren verwenden, die speziell für elementweise boolesche Operationen in Pandas entwickelt wurden.
Bitweise ODER- und UND-Operatoren
Die bitweiser ODER-Operator | und der bitweise UND-Operator & sind für unseren Zweck geeignet. Sie arbeiten elementweise an der Reihe und geben eine boolesche Reihe zurück, wobei jedes Element das Ergebnis der ODER- oder UND-Operation an den entsprechenden Elementen in der ursprünglichen Reihe darstellt.
In unserem Fall können wir den Filterausdruck umschreiben Verwenden Sie den bitweisen ODER-Operator wie folgt:
df = df[(df['col'] < -0.25) | (df['col'] > 0.25)]
Alternative Methoden
Die Ausnahmemeldung schlägt auch alternative Methoden für vor Erhalten von Wahrheitswerten aus einer Reihe:
Das obige ist der detaillierte Inhalt vonWie kann der Fehler „Der Wahrheitswert einer Reihe ist mehrdeutig' bei der Pandas-Filterung behoben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!