根据第二个数据框的匹配列更新 pandas 个数据框
Update pandas dataframe based on matching columns of a second dataframe
我有两个 pandas 数据帧(df_1,df_2)列,但在一个数据框中 (df_1) 缺少一列的某些值。所以我想填写 df_2 中的那些缺失值,但只有当两列的值匹配时。
这是我的数据的一个小例子:
df_1:
df_2:
我尝试添加缺失值:
df_1.update(df_2, overwrite=False)
但问题是,它会填充值,即使只有一列匹配。我想在列 "housenumber" 和 "street" 匹配时填写值。
我认为你需要set_index
for Multiindex
in both DataFrame
s 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()
我有两个 pandas 数据帧(df_1,df_2)列,但在一个数据框中 (df_1) 缺少一列的某些值。所以我想填写 df_2 中的那些缺失值,但只有当两列的值匹配时。
这是我的数据的一个小例子:
df_1:
df_2:
我尝试添加缺失值:
df_1.update(df_2, overwrite=False)
但问题是,它会填充值,即使只有一列匹配。我想在列 "housenumber" 和 "street" 匹配时填写值。
我认为你需要set_index
for Multiindex
in both DataFrame
s 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()