根据第二个数据框的匹配列更新 pandas 个数据框

Update pandas dataframe based on matching columns of a second dataframe

我有两个 pandas 数据帧(df_1df_2)列,但在一个数据框中 (df_1) 缺少一列的某些值。所以我想填写 df_2 中的那些缺失值,但只有当两列的值匹配时。

这是我的数据的一个小例子:

df_1:

df_2:

我尝试添加缺失值:

df_1.update(df_2, overwrite=False)

但问题是,它会填充值,即使只有一列匹配。我想在列 "housenumber" 和 "street" 匹配时填写值。

我认为你需要set_index for Multiindex in both DataFrames and then combine_first or fillna:

df1 = df_1.set_index(["housenumber", "street"])
df2 = df_2.set_index(["housenumber", "street"])

df = df1.combine_first(df2).reset_index()

df = df1.fillna(df2).reset_index()