Python匹配字符串新增列 基于序列号关联两个数据集添加MAP ID
你不需要手动编写if语句完成匹配,直接使用Pandas内置的merge方法即可高效完成基于指定主键的数据集关联操作,具体实现逻辑如下:
- 首先将两个数据集都读取为Pandas DataFrame格式,假设存储「序列号+MAP ID映射关系」的数据集为
df1,需要补充MAP ID字段的目标数据集为df2 - 以「序列号」作为公共关联主键执行左连接,即可把
df1中的MAP ID匹配填充到df2的对应行中,左连接会完整保留df2的所有记录,不会丢失未匹配到MAP ID的行
完整代码示例:
import pandas as pd def make_csv(): # 读取两个数据集的CSV文件,替换为你实际的文件路径 df1 = pd.read_csv("map_id数据集路径.csv") df2 = pd.read_csv("待补充字段的目标数据集路径.csv") # 执行关联匹配 merged_df = pd.merge( left=df2, # 仅取df1中需要的关联主键和MAP ID列,避免冗余字段 right=df1[["序列号", "MAP ID"]], # 关联主键列名,若两个表的主键列名不一致可分别用left_on、right_on指定 on="序列号", how="left" ) # 输出最终结果CSV merged_df.to_csv("处理完成的结果文件.csv", index=False)
常见场景适配说明:
- 若两个数据集中主键列名不同,比如df1中主键叫
SN、df2中主键叫序列号,可将on="序列号"替换为left_on="序列号", right_on="SN" - 若匹配后MAP ID列出现空值,说明对应序列号在df1中无对应的映射记录
- 该方法是结构化数据关联的标准实现,执行效率远高于手动循环判断,尤其适合数据量较大的场景
内容的提问来源于stack exchange,提问作者Mizanur Choudhury
相关产品推荐
相关产品推荐

