Применение .isin для нескольких серий в DF - PullRequest
0 голосов
/ 16 февраля 2019

У меня есть три поля TEL1, TEL2, TEL3, которые я хочу посмотреть, чтобы увидеть, существуют ли значения в другом DF.Я могу сделать один столбец за раз, но мне было интересно, если бы был быстрый способ, я мог бы скрыть строки, если какое-либо из трех полей содержит значение в поисковом фрейме данных.

В настоящее время я использую:

df1 = Sample['TEL1'].isin(DNC['NUMBER'])

Dataframe, с которым я смотрю:

    NUMBER
0   555

Dataframe, с которым я смотрю:

    TEL1 TEL2 TEL3 NAME
0   222  555  555  BEN
1   222  555  222  BEN
2   555  222  555  BEN
3   222  222  222  BEN
4   555  555  555  BEN

Ожидаемый результат (строка, не содержащая 555 в TEL1-TEL3столбцы):

    TEL1 TEL2 TEL3 NAME
3   222  222  222  BEN

Заранее спасибо, Бен.

1 Ответ

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

Вы можете использовать isin на всем фрейме данных (или с интересующими вас столбцами), а затем проверить, какие строки все False (т. Е. не имеют любой ).

ix = ~df.loc[:, 'TEL1':'TEL3'].isin(DNC['NUMBER'].values).any(axis=1)
df.loc[ix]

Обратите внимание, что я использовал значения DNC['NUMBER'], потому что в противном случае он будет пытаться сопоставить индекс.Поэтому он будет искать 555 в кадре данных, где индекс равен 0, если вы сохраните его как серию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...