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

时间:2017-11-15 15:29:06

标签: python pandas dataframe nan data-science

我有两个具有相同列的pandas数据框( df_1 df_2 ),但在一个数据框( df_1 )中有一些值为1列缺失。所以我想填写 df_2 中缺少的值,但仅限于两列的值匹配时。

以下是我的数据的一个小例子:

df_1:df_1

df_2:df_2

我尝试用以下内容添加缺失值:

df_1.update(df_2, overwrite=False)

但问题是,它会填充值,即使只有一列匹配。我希望在列#34; housenumber"时填写值。 AND" street"匹配。

1 个答案:

答案 0 :(得分:2)

我认为Multiindexset_indexcombine_firstDataFrame需要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()