Pandas - использование «any» и «all» в сериях множителей вне фрейма данных - PullRequest
0 голосов
/ 13 февраля 2019

Я ищу эквивалент df.any () и df.all (), который работал бы с сериями, не входящими в фрейм данных.Я бы предпочел не использовать |и & операторы, потому что я хочу связать результат с другими методами в более удобочитаемом виде.

Например, у меня есть две серии логических значений одинаковой длины - s1, s2.Я хотел бы иметь возможность сделать что-то вроде этого:

pd.any (s1, s2)

Это вернет тот же результат, что и это:

s1 |s2

Я также нашел способ выполнить сравнение "и":

s1.add (s2)

Приведенные выше операторы возвращают тот же результат, что и:

s1 & s2

Мне кажется, что может быть более явный способ выполнить операцию "и".

Спасибо!

1 Ответ

0 голосов
/ 13 февраля 2019

Используйте numpy.logical_and или numpy.logical_or:

np.logical_and(s1, s2)

Или:

np.logical_or(s1, s2)

Если есть несколько Series добавить reduce:

np.logical_and.reduce([s1, s2, s3])

Последний, если нужно, новый Series использовать конструктор:

pd.Series(np.logical_and(s1, s2), index=s1.index)

Примечание:

Эти методы игнорируют индекс ряда, поэтому ряды должны быть отсортированы перед передачей их методу для одинаковых индексов в обоих.

...