Сравнение одного кадра данных с другим с пандами - PullRequest
0 голосов
/ 26 сентября 2019

Добрый день,

Я хочу сравнить фрейм данных "новый" с фреймом данных "старый", чтобы получить новый фрейм данных с данными, которые только существуют в "новом", но нет старый.Например,

New  Old  Desired Output
---  ---  --------------
1    1    4 
3    2    7
4    3
5    5
7    8
8    9
9    0

То, что я сделал сначала (простите меня, я новичок в этом) было:

df = pd.concat([new, old])
final = pd.DataFrame(df.iloc[:,0].unique())

Что я не смог понять, конечно, это то, что тамзначения в «старом», которые могут отсутствовать в «новом» и в моем коде, эти значения также будут отображаться в «окончательном», чего я не хочу.

Если кто-то может указать мне направильное направление, любая помощь всегда ценится!

1 Ответ

1 голос
/ 26 сентября 2019

Использование set() здесь поможет с предоставлением значений в New, а не в Old.Затем выполните фильтрацию на основе полученного списка.

df1 = pd.DataFrame(data=[1,2,3,4,5,7,8,9], columns=['New'])
df2 = pd.DataFrame(data=[1,2,3,5,8,9,0], columns=['Old'])

df1_unique = set(df1['New']) - set(df2['Old'])
final_df= df1[df1['New'].isin(df1_unique)]
final_df.rename(columns = {'New' : 'Desired Output'}, inplace=True)
print(final_df)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...