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

如何用Pandas将字符串列转为新整数列?已尝试pd.get_dummies

字符串列转指定整数映射的解决方案

方法1:自定义映射字典 + map() 方法

这是最贴合需求的方式,手动定义映射关系后直接转换:

import pandas as pd

# 示例数据
df = pd.DataFrame({
    'department_str': ['sales', 'RandD', 'tech', 'sales', 'tech']
})

# 定义你需要的映射规则
dept_mapping = {'sales': 1, 'RandD': 2, 'tech': 3}

# 生成目标整数列
df['department_int'] = df['department_str'].map(dept_mapping)

执行后就能得到你想要的department_int列,完全匹配指定的映射关系。

方法2:分类编码(需指定顺序)

如果不需要硬编码映射值,只要保证每个类别对应唯一整数,可通过分类类型实现,注意要指定类别顺序来匹配你的需求:

# 指定类别顺序,确保编码对应正确的整数
df['department_int'] = df['department_str'].astype(
    pd.CategoricalDtype(categories=['sales', 'RandD', 'tech'], ordered=True)
).cat.codes + 1  # 加1是因为默认编码从0开始,转为从1起始

为什么pd.get_dummies不适用?

pd.get_dummies()的作用是生成独热编码,会为每个字符串类别生成单独的二进制列(0或1),比如生成sales、RandD、tech三列,这和你需要的单一整数列需求不符,所以不适合这个场景。

内容的提问来源于stack exchange,提问作者Mick Hirsh

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 18:18:14