[英]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.merge
和rename
列的解决方案:
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.