如何基于CSV映射表替换pandas DataFrame中Id列的对应值
实现方法
你可以用pandas的map方法快速完成Id替换,操作步骤如下:
- 首先读取Id映射的CSV文件,生成
原Id-新Id的匹配字典:
import pandas as pd # 替换为你自己的映射CSV文件路径 id_mapping = pd.read_csv("id_map.csv") # 转换为字典格式,key是原Id,value是对应新Id id_dict = dict(zip(id_mapping["Id"], id_mapping["NewId"]))
- 对原DataFrame的Id列应用映射替换即可,没有匹配到的Id会自动保留原值:
# df为你原始的DataFrame df["Id"] = df["Id"].map(id_dict).fillna(df["Id"])
如果你更习惯用表关联的方式实现,也可以用merge方法:
# 左连接关联原表和映射表,保留原表所有数据 df = df.merge(id_mapping, on="Id", how="left") # 用匹配到的NewId覆盖原Id列 df["Id"] = df["NewId"].fillna(df["Id"]) # 删除多余的NewId列 df = df.drop(columns=["NewId"])
运行完上述代码后,df的Id列就会自动替换为你需要的新Id,和你给出的目标结果完全一致。
内容的提问来源于stack exchange,提问作者ZZZSharePoint
相关产品推荐
相关产品推荐

