python - 从具有字典键的另一列创建 Pandas 数据框列

标签 python pandas dictionary dataframe key

我有数据框和字典。这些看起来像,

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/

相关文章:

python - Pandas :通过键获得第一次出现的分组

python - 如何使用 boto3 将 S3 中的单个 Parquet 文件读入 Pandas 数据帧?

python - 基于不规则时间列合并两个数据帧

python - 合并 pandas groupBy 对象

python - 单个列表到字典

python - 扩展新用户创建表单,Django

Python 对 0 级列执行自定义计算

python - 如何在 python 中返回多维字典的关联键和值?

python - 无法创建 python 3 virtualenv

python - 在约束分配中使用决策变量 - PuLP