我有两个数据帧df1,df2。
df1=pd.DataFrame(columns=['name','yr'])
df1.name=['a','b','c','b','d','a']
df1.yr=[2017,2016,2017,2018,2018,2019]
df2=pd.DataFrame(index=[2016,2017,2018,2019],columns=['a','b','c','d'],data= np.random.randn(4,4))
我想要的是添加新列'z',其中包含df2中的值,相应的'名称'和'年份'。
使用for语句进行迭代不是我的考虑。
*已添加) 无法使用“合并”,因为df1中的匹配数据位于df2的索引和列中
答案 0 :(得分:0)
df1['z'] = df2.lookup(df1['yr'], df1['name'])
print (df1)
name yr z
0 a 2017 -0.578600
1 b 2016 0.997345
2 c 2017 -2.426679
3 b 2018 -0.866740
4 d 2018 -0.094709
5 a 2019 1.491390