Python 使用条件从另一个数据帧映射数据帧值
我有df1Python 使用条件从另一个数据帧映射数据帧值,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 = {'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