繁体   English   中英

使用 pandas 合并两个数据帧

[英]Merge two dataframes using pandas

我有两个数据框

df1:

Person    Value
Jack        6
Jill        9
Sam         4
Tony        3


df2:

Home    Away
Jill    Sam
Tony    Jack

我希望制作第三个 dataframe ,它从 df1 获取 Value 列中的数字并将它们与 df2 中的名称匹配

目标 output:

df3:

Home    Away    Value1    Value2
Jill    Sam       9         4
Tony    Jack      3         6    

我可以对此执行简单的合并 function 吗?

谢谢

对两列使用Series.map

s = df1.set_index('Person')['Value']

df2['Value1'] = df2['Home'].map(s)
df2['Value2'] = df2['Away'].map(s)

或使用DataFrame.assign为新的DataFrame

s = df1.set_index('Person')['Value']
df3 = df2.assign(Value1 = df2['Home'].map(s),
                 Value2 = df2['Away'].map(s))
print (df3)
   Home  Away  Value1  Value2
0  Jill   Sam       9       4
1  Tony  Jack       3       6

DataFrame.mergerename列的解决方案:

df3 = (df2.merge(df1.rename(columns={'Person':'Home','Value':'Value1'}), how='left')
          .merge(df1.rename(columns={'Person':'Away','Value':'Value2'}), how='left'))
print (df3)
   Home  Away  Value1  Value2
0  Jill   Sam       9       4
1  Tony  Jack       3       6

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM