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

2024-10-03 02:36:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据框和一个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的行就可以实现这一点


Tags: 数据mappandasjohndictandersonfirstpd
1条回答
网友
1楼 · 发布于 2024-10-03 02:36:44

只需将字典值直接映射到键:

df1['last'] = df1['first'].map(df1_map)

结果是:

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

相关问题 更多 >