请告诉我,在比较 pandas 中的 2 个数据框时,如何仅显示根据条件发生的变化。
df1:
Id Name Amount Contract_ID Date
195 ART 200 23rt 2019-02-21
264 Pict 150 18f 2019-01-17
482 Tras 379 427df 2019-02-10
294 Fish 375 29fg 2019-02-11
df2
Id Name Amount Contract_ID Date
195 ART 250 23rt 2019-03-26
190 Tree 100 312ft 2019-03-15
482 Tras 379 427df 2019-03-20
264 Pict 50 18f 2019-04-01
294 Fish 450 29fg 2019-04-20
294 Fish 100 26394rt 2019-03-20
您需要获得以下结果 - 创建一个数据框,其中只有数量增加的行或新行:
df_update:
195 ART 250 23rt 2019-03-26
190 Tree 100 312ft 2019-03-15
294 Fish 450 29fg 2019-04-20
294 Fish 100 26394rt 2019-03-20
我试图用下面的代码来做,但没有得到想要的结果:
df_update = df1.merge(df2, how='outer', indicator=True).query("_merge == 'right_only'")
逐步解决方案:
在有指示
"FULL OUTER JOIN"的列上做。['Id','Name','Contract_ID']第二个 DF 中未参与连接的列将获得后缀_new:['Amount', 'Date']从中对应的行开始填写各列的缺失值DF2(可以跳过这一步):只选择我们感兴趣的行: