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

分类任务中如何将两位国家代码替换为类别数值?

分类问题中国家代码转数字类别方法

以下是两种高效实现国家代码到数字类别转换的方法,适合处理包含70+唯一国家代码的数据集:

  • 使用pandas的factorize()方法
    该方法会自动为每个唯一国家代码分配递增数字,操作简单且能保留映射关系:

    import pandas as pd
    
    # 构建示例数据框
    df = pd.DataFrame({'acq_cc': ['KY', 'US', 'CN', 'SG', 'US', 'SG', 'US', 'US', 'CZ', 'CN']})
    # 完成编码转换,同时获取唯一代码列表
    df['acq_cc_num'], unique_codes = pd.factorize(df['acq_cc'])
    # 若需要数字从1开始(而非默认的0),直接加1即可
    df['acq_cc_num'] = df['acq_cc_num'] + 1
    # 输出转换结果
    print(df['acq_cc_num'].tolist())  # 结果: [1, 2, 3, 4, 2, 4, 2, 2, 5, 3]
    # 查看完整映射关系
    print(dict(zip(unique_codes, range(1, len(unique_codes)+1))))
    
  • 使用sklearn的LabelEncoder()
    如果后续要对接机器学习模型训练,这个方法更适配机器学习工作流:

    from sklearn.preprocessing import LabelEncoder
    import pandas as pd
    
    df = pd.DataFrame({'acq_cc': ['KY', 'US', 'CN', 'SG', 'US', 'SG', 'US', 'US', 'CZ', 'CN']})
    # 初始化编码器
    le = LabelEncoder()
    # 拟合数据并完成编码,加1让数字从1开始
    df['acq_cc_num'] = le.fit_transform(df['acq_cc']) + 1
    # 输出转换结果
    print(df['acq_cc_num'].tolist())  # 结果: [1, 2, 3, 4, 2, 4, 2, 2, 5, 3]
    # 查看国家代码与数字的映射关系
    print(dict(zip(le.classes_, le.transform(le.classes_) + 1)))
    

两种方法都能自动处理全部70多个唯一国家代码的映射,无需手动逐个定义转换规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 06:40:45