比较具有不同列名的两个数据帧,并使用第二个数据帧中的列更新第一个数据帧



我正在处理两个具有不同列名和维度的数据帧。

第一数据帧";df1";包含单列";name";需要在第二数据帧中定位具有名称的。如果匹配,则需要返回df2第一列df2[0]中的值,并将其添加到result_df 中

第二数据帧";df2";有多列,但没有标题。这包含了所有可能的小名和全名。任何一列都可以具有";name";需要匹配

目标:在";df1";在";df2";如果匹配,则返回df2第一列的值,并将其添加到df1 的相应行中

df1

罗伯特
name
ab
亚历克斯
鲍勃
账单

通过concat()merge()drop()rename()reset_index()方法尝试:

df=(pd.concat((df1.merge(df2,left_on='name',right_on=x) for x in df2.columns))
.drop(['1','2','3'],1)
.rename(columns={'0':'matched_name'})
.reset_index(drop=True))

df:输出

name    matched_name
0   robert  robert
1   ab      abram
2   alex    alexander
3   bill    william
4   bob     robert

相关内容

  • 没有找到相关文章

最新更新