Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不使用迭代的情况下从另一个df获取具有特定索引、列的值列表?_Python_Pandas_Dataframe - Fatal编程技术网

Python 如何在不使用迭代的情况下从另一个df获取具有特定索引、列的值列表?

Python 如何在不使用迭代的情况下从另一个df获取具有特定索引、列的值列表?,python,pandas,dataframe,Python,Pandas,Dataframe,我有两个数据帧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”,其中包含来自d

我有两个数据帧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的值,对应的“name”和“year”

我不考虑使用for语句进行迭代

*新增) 无法使用“合并”,因为df1中的匹配数据位于df2的索引和列中使用:

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