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_orverhalten sich in Gegenwart von NaNs anders. Siehe stackoverflow.com/q/37131462/2596586
orfunktioniert hier nicht. Funktioniert nur |.
Um das elementweise logische ODER von zwei Reihen zu nehmen aund beinfach zu tun
a | b