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

如何用字典对应键值替换CSV指定列的值?(Python)

替换CSV指定列内容的Python实现

需要注意CSV的列索引从0开始计数,你要处理的第7列对应的索引是6。我们可以通过字典匹配替换该列内容,同时将英文州缩写转换为对应的中文州名。

完善后的代码

import csv  # 必须导入csv模块,原代码遗漏此步骤

# 对应中文翻译的状态字典
state = {'WA': '西澳大利亚州', 'NM': '新墨西哥州', 'GA': '佐治亚州', 'SC': '南卡罗来纳州', 'FL': '佛罗里达州'}

fr = open('CarRentalData.csv', 'r')
reader = csv.reader(fr)
header = next(reader)

# 添加newline=''避免Windows系统下写入CSV出现多余空行
fw = open('CarRentalData_clean.csv', 'w', newline='')
writer = csv.writer(fw)
writer.writerow(header)

clean_data = []
for row in reader:
    # 替换第7列(索引6):匹配到字典键则用中文替换,无匹配则保留原值
    row[6] = state.get(row[6], row[6])
    clean_data.append(row)
    writer.writerow(row)

# 必须调用close()方法关闭文件,原代码遗漏括号属于语法错误
fr.close()
fw.close()

关键细节说明

  • 导入csv模块:这是使用CSV读写功能的前提,原代码未添加会直接报错。
  • 索引对应:CSV行数据为列表结构,第7列对应索引6,这是新手易踩的坑。
  • get()方法的作用:state.get(row[6], row[6])确保当列值不在字典键中时,保留原内容,不会触发异常。
  • newline=''参数:写入CSV时添加该参数,可避免Windows系统下生成的文件出现多余空行。

更简洁高效的写法(自动管理文件)

使用with语句可以自动处理文件的打开与关闭,无需手动调用close(),避免资源泄漏:

import csv

state = {'WA': '西澳大利亚州', 'NM': '新墨西哥州', 'GA': '佐治亚州', 'SC': '南卡罗来纳州', 'FL': '佛罗里达州'}

# with块结束后自动关闭文件
with open('CarRentalData.csv', 'r') as fr, open('CarRentalData_clean.csv', 'w', newline='') as fw:
    reader = csv.reader(fr)
    writer = csv.writer(fw)
    # 写入表头
    writer.writerow(next(reader))
    clean_data = []
    for row in reader:
        row[6] = state.get(row[6], row[6])
        clean_data.append(row)
        writer.writerow(row)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:50:29