Найти разницу (установить разницу) между двумя фреймами данных в Python - PullRequest
0 голосов
/ 25 января 2019

У меня есть два кадра данных: df1 и df2.Я хочу устранить все вхождения строк df2 в df1.По сути, это оператор разности множеств, но для фреймов данных.

Мой вопрос очень похож на этот вопрос с одним существенным изменением: возможно, что у df1 вообще нет общих строк.В этом случае, если мы объединяем два кадра данных и затем удаляем дубликаты, это все равно не устраняет вхождения df2 в df1.Infact это добавляет к этому.

Вопрос также похож на this , за исключением того, что я хочу свою операцию со строками.

Пример:

Case 1:
df1:
A,B,C,D
E,F,G,H

df2:
E,F,G,H

Then, df1-df2:
A,B,C,D

Case 2:
df1:
A,B,C,D

df2:
E,F,G,H

Then, df1 - df2:
A,B,C,D

Говоря просто, я ищу способ сделать df1 - df2 (удалить df2, если присутствует в df1).Как это должно быть сделано?

Ответы [ 2 ]

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

Set разница будет работать здесь, он возвращает уникальные значения в ar1, которых нет в ar2.

np.setdiff1d(df1, df2)

Или получить результат в виде DataFrame,

pd.DataFrame([np.setdiff1d(df1, df2)])
0 голосов
/ 25 января 2019

попробовать:

df1[~df1.isin(df2)]

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