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

如何使用Pandas将DataFrame列指定值转换为对应缩写?

当然可以!完全不用依赖scikit-learn,用Pandas自己的工具就能轻松搞定这个值映射需求,而且方法还挺灵活的,我给你介绍几种常用的实现方式:

方法1:使用map()函数(最推荐)

这是处理这种一对一值映射最直观的方式,先定义一个映射字典,然后用map()把原列的每个值对应到缩写:

import pandas as pd

# 构造示例DataFrame(模拟你的数据)
data = {'rating': ['excellent', 'good', 'average', 'bad', 'very bad', 'good', 'excellent']}
df = pd.DataFrame(data)

# 定义映射规则字典
rating_mapping = {
    'excellent': 'EX',
    'good': 'G',
    'average': 'Avg',
    'bad': 'B',
    'very bad': 'VB'
}

# 新增缩写列
df['rating_abbr'] = df['rating'].map(rating_mapping)

print(df)

运行后会得到如下结果:

rating rating_abbr
0  excellent          EX
1       good           G
2    average         Avg
3        bad           B
4   very bad          VB
5       good           G
6  excellent          EX
方法2:使用replace()函数

如果需要更灵活的替换场景(比如后续要扩展正则替换等),replace()也能实现同样的效果,用法和map()几乎一致:

df['rating_abbr'] = df['rating'].replace(rating_mapping)

这个写法的效果和map()完全相同,区别在于replace()支持更多高级替换逻辑,而map()更专注于简单的字典映射。

处理未匹配的异常值

如果你的DataFrame里可能存在不在映射字典中的值,map()会把这些值转为NaN,这时候可以用fillna()来填充默认值,避免出现缺失值:

# 把未匹配到的值统一替换为"Unknown"
df['rating_abbr'] = df['rating'].map(rating_mapping).fillna('Unknown')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:54:33