Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.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 使用条件从另一个数据帧映射数据帧值_Python_Pandas_Dataframe - Fatal编程技术网

Python 使用条件从另一个数据帧映射数据帧值

Python 使用条件从另一个数据帧映射数据帧值,python,pandas,dataframe,Python,Pandas,Dataframe,我有df1 df1 = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]} df1 = pd.DataFrame(df1) 我还有一个df2 df2 = {'Name':['krish', 'jack','Tom', 'nick',]} df2 = pd.DataFrame(df2) df2['Name']与df1完全相同。然而,它们的顺序不同 我想在df1的基础上填写df2['Age'] 如果使用了df2

我有df1

df1 = {'Name':['Tom', 'nick', 'krish', 'jack'], 'Age':[20, 21, 19, 18]} 
df1 = pd.DataFrame(df1) 
我还有一个df2

df2 = {'Name':['krish', 'jack','Tom', 'nick',]}
df2 = pd.DataFrame(df2) 
df2['Name']与df1完全相同。然而,它们的顺序不同

我想在df1的基础上填写df2['Age']

如果使用了
df2['Age']=df1['Age']

如何从df1正确映射df2上的这些值


谢谢

名称
设置为索引并基于
df2

df1.set_index('Name').reindex(df2.Name).reset_index()

   Name   Age
0  krish   19
1   jack   18
2    Tom   20
3   nick   21

或者,为了获得更好的性能,我们可以在此处使用:

使用:


嗨@user46543别忘了你可以投票并接受答案。看,谢谢!
df1['Name'] = pd.Categorical(df1.Name, categories=df2.Name)
df1.sort_values('Name', inplace=True)
df2 = df2.merge(df1,on='Name')
df2

    Name  Age
0  krish   19
1   jack   18
2    Tom   20
3   nick   21