使用python修复csv文件的列中的值

时间:2016-02-02 17:21:30

标签: python python-2.7 csv

我正在尝试找到一种方法,以编程方式搜索csv文件中特定列中的值,并在满足条件时替换值。

基本上,我将处理许多大型文件,其中State值的数据不一致(有些使用NY,有些使用New York)。我需要尝试用所有州的ISO标准(例如NY)替换大部分(如果不是全部)。

我将如何改变这一点:

data1,data2,New York,data4
data1,data2,NY,data4
data1,data2,Ohio,data4

对此:

data1,data2,NY,data4
data1,data2,NY,data4
data1,data2,OH,data4

全部不创建新文件。

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作来转换第3列条目:

import csv

short = {'New York':'NY', 'NY':'NY', 'Ohio':'OH'}
entries = []

with open('data.txt', 'rb') as f_input:
    for cols in csv.reader(f_input):
        cols[2] = short[cols[2]]
        entries.append(cols)

with open('data.txt', 'wb') as f_output:
    csv.writer(f_output).writerows(entries)

这会导致data.txt看起来像:

data1,data2,NY,data4
data1,data2,NY,data4
data1,data2,OH,data4

这假设您的文件足够小以适应内存。