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

如何将DataFrame列的每个值转换为对应的标识整数?

解决Pandas DataFrame列值替换的问题

嘿,这事儿很简单,有几种高效的方法能帮你完成Value列的批量替换,我给你详细说说:

方法1:使用replace()方法(最直观)

replace()是Pandas里专门做值替换的方法,直接传入一个映射字典就可以批量替换所有匹配项,完全符合你的需求:

import pandas as pd
df = pd.DataFrame(dict(NoMatter=list(range(6)), Value=['a','b',7,7,'b','b']))

# 定义替换规则字典
replace_mapping = {'a': 1, 'b': 2, 7: 3}
# 对Value列执行替换
df['Value'] = df['Value'].replace(replace_mapping)

print(df)

运行后你会得到期望的结果:

NoMatter Value
0 0 1
1 1 2
2 2 3
3 3 3
4 4 2
5 5 2

这个方法的好处是:即使列里有不在映射字典中的值,也不会被修改,只会替换指定的内容,非常安全。

方法2:使用map()方法(适合严格映射)

如果确定Value列的所有值都在你的映射规则里,也可以用map()方法,它会直接把每个值映射成字典对应的value:

import pandas as pd
df = pd.DataFrame(dict(NoMatter=list(range(6)), Value=['a','b',7,7,'b','b']))

# 同样用映射字典
map_mapping = {'a': 1, 'b': 2, 7: 3}
df['Value'] = df['Value'].map(map_mapping)

print(df)

⚠️ 注意:如果Value列存在不在映射字典里的值,map()会把这些值转换成NaN。如果担心这种情况,可以搭配fillna()保留原始值:

df['Value'] = df['Value'].map(map_mapping).fillna(df['Value'])

两种方法都能完美实现你的需求,选哪个全看你的实际场景~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 17:57:51