Ich möchte den elementweisen logischen ODER-Operator. Ich weiß, dass "oder" selbst nicht das ist, wonach ich suche.
Mir ist bewusst, dass AND entspricht &
und NICHT , ~
. Aber was ist mit OP?
Antworten:
Der entsprechende Operator ist |
:
df[(df < 3) | (df == 5)]
würde elementweise prüfen, ob der Wert kleiner als 3 oder gleich 5 ist.
Wenn Sie dazu eine Funktion benötigen, haben wir np.logical_or
. Für zwei Bedingungen können Sie verwenden
df[np.logical_or(df<3, df==5)]
Oder verwenden Sie für mehrere Bedingungen die logical_or.reduce
,
df[np.logical_or.reduce([df<3, df==5])]
Da die Bedingungen als einzelne Argumente angegeben werden, ist keine Gruppierung in Klammern erforderlich.
Weitere Informationen zu logischen Operationen mit Pandas finden Sie hier .
|
und np.logical_or
verhalten sich in Gegenwart von NaNs anders. Siehe stackoverflow.com/q/37131462/2596586
or
funktioniert hier nicht. Funktioniert nur |
.
Um das elementweise logische ODER von zwei Reihen zu nehmen a
und b
einfach zu tun
a | b