Chciałbym mieć logiczny operator OR oparty na elementach. Wiem, że samo „lub” nie jest tym, czego szukam.
Zdaję sobie sprawę, że i odpowiada &
, a nie ~
. Ale co z OR?
Odpowiedzi:
Odpowiednim operatorem jest |
:
df[(df < 3) | (df == 5)]
elementwise sprawdziłby, czy wartość jest mniejsza niż 3 lub równa 5.
Jeśli potrzebujesz do tego funkcji, mamy np.logical_or
. W przypadku dwóch warunków możesz użyć
df[np.logical_or(df<3, df==5)]
Lub w przypadku wielu warunków użyj logical_or.reduce
,
df[np.logical_or.reduce([df<3, df==5])]
Ponieważ warunki są określone jako indywidualne argumenty, grupowanie w nawiasach nie jest potrzebne.
Więcej informacji na temat operacji logicznych z pandami można znaleźć tutaj .
or
tu nie działa. Tylko |
działa.
Aby wziąć element logiczny LUB z dwóch serii a
i b
po prostu zrób
a | b