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

如何使用Python修改CSV文件中class列的字符串为对应数值?

问题原因

你之前调用的df.rename()方法作用是修改DataFrame的列名或行索引,并非修改列内的单元格数值,因此只会改动列名无法实现你要的行内容替换效果。

实现方案

你可以通过pandas的映射方法直接修改class列的内容,其余列不会受到影响,示例代码如下:

import pandas as pd

# 读取原始CSV
df = pd.read_csv('data.csv')

# 定义类别到数字的映射关系
class_mapping = {
    'A': 0,
    'B': 1,
    'C': 2,
    'D': 3,
    'E': 4,
    'F': 5,
    'O': 6
}

# 替换class列内容
df['class'] = df['class'].map(class_mapping)

# 输出验证
print(df.head())

# 保存修改后的结果到新CSV,index=False表示不保存行索引
df.to_csv('output.csv', index=False)

补充说明

  • 如果你希望class列中不在映射关系里的数值保持原值,可将map替换为replace方法:
    df['class'] = df['class'].replace(class_mapping)
    
  • 如果类别数量多不需要手动定义映射,想按出现顺序自动编码,可以直接使用factorize方法自动生成数字编码:
    df['class'] = pd.factorize(df['class'])[0]
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 13:27:03