使用默认dict值在python中修改CSV中的列

时间:2014-02-12 11:19:57

标签: python csv defaultdict

我有一个包含近10,000行的CSV文件。我已将完整数据保存在默认字典

import csv
from collections import defaultdict


columns = defaultdict(list) 

testfile = open('test.txt' , 'a+')
with open('test.csv') as f:
    reader = csv.DictReader(f) 
    for row in reader: 
        for (k,v) in row.items(): 
            columns[k].append(v) 


print  >>  testfile ,"\n".join(columns['A'])
print  >>  testfile ,"\n".join(columns['B'])

现在我正在根据一些比较修改列['A']和列['B']。

indices = [i for i, x in enumerate(columns['A']) if x == "tsest user"]
print indices
for val in indices:
    p_val = (columns['D'])[val]
    user = mapping(p_val )
    print user
    (columns['A'])[val] = user

这为我提供了修改后的column['A']

现在我想将此修改后的列写入相同的CSV。但writerow()方法是将所有内容添加到文件第一列的末尾。

0 个答案:

没有答案