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

Python Pandas实现带百分号分类变量转数值型变量方法

Pandas分类字段转数值型表示实现方案

前置示例数据集构造

首先按照题设逻辑构造测试数据集,注意需要先将cotton_pct字段转换为分类类型,匹配题设的字段类型前提:

import pandas as pd

dt = {'tensile_strength': ['15%', '15%', '20%', '20%', '25%', '25%', '30%', '30%'], 
      'cotton_pct': [7, 7, 12, 17, 14, 18, 19, 25]}
mydt = pd.DataFrame(dt, columns = ['tensile_strength', 'cotton_pct'])
# 将目标字段转为分类类型
mydt['cotton_pct'] = mydt['cotton_pct'].astype('category')

具体实现方式

根据业务需求不同,有两种常用实现路径:

  • 场景1:需要为每个独立分类分配唯一整数标识(用于建模等需要数值入参的场景)
    直接使用pandas分类类型自带的.cat.codes属性即可,该属性会为每个分类值返回从0开始的整数编码,自动完成去重映射:

    # 新建列存储分类对应的整数编码
    mydt['cotton_pct_cat_code'] = mydt['cotton_pct'].cat.codes
    

    注意:默认编码是按照分类值的字典序分配的,如果需要按照自定义规则排序编码,可以先指定分类顺序再生成编码,例如要按cotton_pct数值升序对应编码从小到大:

    # 按原始数值升序设置有序分类
    mydt['cotton_pct'] = mydt['cotton_pct'].cat.reorder_categories(
        sorted(mydt['cotton_pct'].unique()), 
        ordered=True
    )
    mydt['cotton_pct_ordered_code'] = mydt['cotton_pct'].cat.codes
    
  • 场景2:需要取回分类字段对应的原始数值(即把分类类型还原为原本的整数/浮点数值类型)
    直接做类型转换即可:

    mydt['cotton_pct_original_num'] = mydt['cotton_pct'].astype(int)
    

结果验证

执行完上述操作后打印数据集,可以看到新增的数值字段已经生成:

print(mydt)

输出结果:

tensile_strength cotton_pct  cotton_pct_cat_code  cotton_pct_ordered_code  cotton_pct_original_num
0              15%          7                    0                        0                         7
1              15%          7                    0                        0                         7
2              20%         12                    1                        1                        12
3              20%         17                    3                        3                        17
4              25%         14                    2                        2                        14
5              25%         18                    4                        4                        18
6              30%         19                    5                        5                        19
7              30%         25                    6                        6                        25

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 13:06:23