Python 从另一个具有字典键的列创建dataframe列

Python 从另一个具有字典键的列创建dataframe列,python,pandas,dictionary,dataframe,key,Python,Pandas,Dictionary,Dataframe,Key,我有一个数据框和一个dict这些看起来 import pandas as pd df1 = pd.DataFrame({'first':['john','oliver','sarah']}) df1_map = {'john': 'anderson', 'oliver': 'smith', 'sarah' : 'shively'} print (df1) print (df1_map) first 0 john 1 oliver 2 sarah {'oliver': 'sm

我有一个数据框和一个dict这些看起来

import pandas as pd
df1 = pd.DataFrame({'first':['john','oliver','sarah']})
df1_map = {'john': 'anderson', 'oliver': 'smith', 'sarah' : 'shively'}
print (df1)
print (df1_map)

    first
0    john
1  oliver
2   sarah
{'oliver': 'smith', 'sarah': 'shively', 'john': 'anderson'}
df1['first']的值表示dict的键值

我想在数据帧中添加第二列,名为df1['second'],因此保持dict关系以获得以下数据帧

    first    last
0    john  anderson
1  oliver     smith
2   sarah   shively
现在,我可以迭代数据帧值,就像这样

df1['last'] = [ df1_map[i] for i in list(df1['first'])]

我想知道pandas是否支持向量化的实现/函数,该实现/函数无需迭代df的行即可实现这一点

df1['last'] = df1['first'].map(df1_map)
结果是:

Out[6]: 
    first      last
0    john  anderson
1  oliver     smith
2   sarah   shively