比较两个数据框并获得不同的行
有两个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中已更改的行
答案 0 :(得分:3)
您可以在将name
设置为两个数据帧的索引之后使用df.ne
,并在轴1上使用df.any
。
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
答案 1 :(得分:3)
您可以尝试与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