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?
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?
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 .
|
inp.logical_or
zachowują się inaczej w obecności NaN. Zobacz stackoverflow.com/q/37131462/2596586or
tu nie działa. Tylko|
działa.Aby wziąć element logiczny LUB z dwóch serii
a
ib
po prostu zróbźródło