Получить строку df1, если значение столбца отсутствует в столбце df2 - PullRequest
0 голосов
/ 25 января 2019

Настройка

У меня есть 2 панды DataFrames,

df1 = pd.DataFrame(data = {'col1' : [1, 2, 3], 'col2' : [10, 11, 12], 'col3' : [4, 5, 6]}) 
df2 = pd.DataFrame(data = {'col1' : [1, 2, 4], 'col2' : [10, 11, 12]})

такой, что df1 есть,

   col1  col2  col3
0     1    10     4
1     2    11     5
2     3    12     6

и df2 есть,

   col1  col2
0     1    10
1     2    11
2     4    12

Выпуск

Я хочу выбрать все строки в df2, которые имеют значение в col1, которого нет в col1 в df2.

В примере это означает, что result_df должно быть,

   col1  col2
2     4    12

но при следующей попытке

result_df = df2[~df2.col1.isin(list(df2['col1']))]

приводит к пустому фрейму данных.

Что я делаю не так?

1 Ответ

0 голосов
/ 25 января 2019

Удалить список (isin, работающий с Series nice) и изменить df2 на df1:

result_df = df2[~df2['col1'].isin(df1['col1'])]
print (result_df)
   col1  col2
2     4    12
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...