我有数据框和字典。这些看起来像,
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'] 的值表示字典的键值。
我想在名为 df1['second'] 的数据框中添加第二列,以便保持字典关系以获得以下数据框,
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
关于python - 从具有字典键的另一列创建 Pandas 数据框列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39375878/