You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中根据ID匹配添加对应管理者姓名列?

解决方案:用Pandas映射实现管理者姓名匹配

嘿,这个需求很常见,用Pandas的map()方法就能轻松搞定,步骤非常清晰:

1. 先读取你的CSV文件

首先导入Pandas并读取数据,注意你CSV里空的ManagerId会被自动识别为NaN:

import pandas as pd

# 替换成你的CSV文件实际路径
df = pd.read_csv("your_data.csv")

2. 创建Id到姓名的映射字典

我们需要构建一个以员工Id为键、Name为值的字典,这样就能通过ManagerId直接查到对应的管理者姓名:

# 将Id设为索引,提取Name列转成字典
manager_map = df.set_index('Id')['Name'].to_dict()

这个字典的结构会是{1: 'A', 2: 'B', 3: 'C', 4: 'D'},正好满足我们的匹配需求。

3. 添加Manager列并填充值

用map()方法将ManagerId列中的值映射为对应的管理者姓名,空的ManagerId会自动转为NaN:

df['Manager'] = df['ManagerId'].map(manager_map)

最终结果

运行完上面的代码后,你的DataFrame会变成这样:

Id Name  ManagerId Manager
0   1    A        3.0       C
1   2    B        4.0       D
2   3    C        NaN     NaN
3   4    D        NaN     NaN

可选:处理空值

如果你想把NaN换成空字符串,可以在后面加上fillna():

df['Manager'] = df['ManagerId'].map(manager_map).fillna('')

这样无管理者的行,Manager列就会显示为空字符串而不是NaN。

另外,如果你的数据里存在ManagerId对应的Id不存在的情况(比如某个员工的ManagerId是5,但没有Id=5的记录),map()会自动把这类值转为NaN,这也符合逻辑——毕竟没有对应的管理者信息嘛。

内容的提问来源于stack exchange,提问作者kieunhi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.09 13:17:54