Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/357.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
如何从另一个dataframe获取相应的列值并映射到python中的现有列上_Python_Pandas_Dataframe_Merge - Fatal编程技术网

如何从另一个dataframe获取相应的列值并映射到python中的现有列上

如何从另一个dataframe获取相应的列值并映射到python中的现有列上,python,pandas,dataframe,merge,Python,Pandas,Dataframe,Merge,我有两个这样的数据帧 df1 = pd.DataFrame({ 'a':[12,11,35,48] , 'b': [765, 221, 381, 213], 'c': [np.nan, np.nan, np.nan, np.nan]}) df2 = pd.DataFrame({'a':[12, 15, 11, 13, 35, 18, 48], 'd':['Watch', '

我有两个这样的数据帧

df1 = pd.DataFrame({ 'a':[12,11,35,48] , 
                    'b': [765, 221, 381, 213],
                    'c': [np.nan, np.nan, np.nan, np.nan]})
df2 = pd.DataFrame({'a':[12, 15, 11, 13, 35, 18, 48], 
                    'd':['Watch', 'Pen', 'Pencil', 'Eraser', 'bottle', 'box', 'toolkit'],
                    })
我想将df2中d的对应列值设置为df1中的列“a”,并填充c列。谢谢你的帮助。 我想要的是

     a   b   c
0   12  765 watch
1   11  221 Pencil
2   35  381 bottle
3   48  213 toolkit
这段代码可以工作,但我的真实数据有更多的列和行,我正在寻找一种聪明的方法

df3 = df1.merge(df2, on='a', how='left')
df3.drop('c', inplace=True, axis=1)
df3.rename(columns={'b_x': 'b','b_x': 'b_y:c'})

关于同一主题有几个问题:
df1['c']=df1['a'].map(df2.set_index('a')['d'])