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

如何用另一DataFrame的标签替换当前DataFrame行中的编码值

问题:将DataFrame中的编码替换为对应标签

现有两个DataFrame:df1存储编码数据,df2存储编码与其对应的标签映射关系,需将df1中的编码替换为df2中对应的标签。

示例数据

df1(编码数据)

VBC  VDV
1     5
1     7
2     9
2    10

df2(编码-标签映射)

QCcode    Response     Label
VBC           1         Male
VBC           2        Female
VDV           5        Advertising
VDV           9        Marketing

期望输出

VBC    VDV
Male    Advertising
Male            NaN
Female  Marketing
Female          NaN

解决方案

用Pandas的映射功能即可实现,步骤如下:

  1. 构建各列的编码-标签映射字典
    按QCcode分组,将每个列对应的Response(编码)和Label(标签)整理为字典:

    import pandas as pd
    
    # 假设已加载df1和df2
    mappings = df2.groupby('QCcode').apply(lambda x: dict(zip(x['Response'], x['Label']))).to_dict()
    
  2. 对df1的每一列应用映射
    遍历df1的列,用map()方法替换编码,无对应映射的编码会转为NaN;若需保留原编码,可追加fillna处理:

    df_op = df1.apply(lambda col: col.map(mappings.get(col.name, {})))
    # 可选:将NaN替换为原编码
    # df_op = df_op.fillna(df1)
    

内容的提问来源于stack exchange,提问作者Sai Deepak Chinta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:25:18