dataframe.isin с использованием нескольких операторов OR - PullRequest
0 голосов
/ 03 июля 2019

Я хочу посмотреть, есть ли у меня какие-либо значения из списка в нескольких столбцах моего фрейма данных pandas.

По сути, я хочу просмотреть мои столбцы A, B и C, если существуют значения из спискаи если это так, отфильтруйте строки, в которых существуют эти значения.Для этого я использую это:

processes = ['process_A', 'process_B']
df[df.col_A.isin(processes),df.col_B.isin(processes), df.col_C.isin(processes)].any()

И уже попробую это:

df[df.col_A.isin(processes) OR df.col_B.isin(processes) or df.col_C.isin(processes)]

Но я получил много ошибок или неожиданных результатов.

Ответы [ 2 ]

2 голосов
/ 03 июля 2019

.isin возвращает логическую серию, вам нужно использовать | для логического ИЛИ между значениями.

попробуйте это:

df[df.col_A.isin(processes) | df.col_B.isin(processes) | df.col_C.isin(processes)]
0 голосов
/ 03 июля 2019

Использование any как показано ниже

df[df[['col_A','col_B','col_C']].isin(processes).any(1)]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...