Python: Pandas сравнить два фрейма данных и получить разные строки - PullRequest
0 голосов
/ 21 июня 2020

сравнить два фрейма данных и получить разные строки

иметь два df

name    password   login_id
tom      1234         1
matt     4567         2
george   7469         
stuart                3
name    password   login_id
tom      1234         1
matt     7859         2
george   7469         5
stuart   4682         3

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

expected output 

name    password   login_id
matt     7859         2
george   7469         5
stuart   4682         3

Необходимо чтобы получить только строки, которые изменились во втором df

Ответы [ 2 ]

3 голосов
/ 21 июня 2020

Вы можете попробовать объединиться с indicator

df2.merge(df1,how='left',indicator=True).loc[lambda x : x['_merge']=='left_only']
     name  password  login_id     _merge
1    matt      7859         2  left_only
2  george      7469         5  left_only
3  stuart      4682         3  left_only
3 голосов
/ 21 июня 2020

Вы можете использовать df.ne после установки name в качестве индекса в обоих фреймах данных и использовать df.any по оси 1.

mask = df.set_index('name').ne(df1.set_index('name')).any(1).tolist()
df1[mask]
     name  password  login_id
1    matt      7859         2
2  george      7469         5
3  stuart      4682         3
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...