尝试将来自两个不同csv文件的列合并到python中的一个列表中

时间:2018-05-04 10:00:18

标签: python csv

我有两个示例csv文件,以便更容易,其中csvexample.csv如下所示:

ID文字
1'早上好' 2'goodafternoon'
3'goodevening'

csvexample1.csv文件如下所示:

日月
17'2月' 18'3月18日 19'五月'

我希望将第一个文件的第一列和第二个文件的第二列添加到一个单一列表中。到目前为止,我有以下代码:

import csv
from collections import defaultdict
columns = defaultdict(list)


with open('csvexample.csv') as f, open('csvexample1.csv') as a:
    reader=csv.reader(f)
    reader1=csv.reader(a)
    next(reader)
    next(reader1)
    for row in reader:
        for(i,v) in enumerate(row):
            columns[i].append(v)
    print (columns[0])
    for row in reader1:
        for (b,c) in enumerate(row):
            columns[b].append(c)
    print (columns[1])

这给了我以下结果:
[ '1', '2', '3']
['Goodmorning','Goodafternoon','Goodevening','Feb','Mar','May']

我对python很新,我有点理解为什么我得到这个结果,但我不知道如何修复它。我希望结果如下:
['1','2','3','Feb','Mar','May']但我尝试的任何东西似乎都在起作用。

1 个答案:

答案 0 :(得分:1)

<强>实施例

import csv
columns = defaultdict(list)

res = []
with open(filename) as f, open(filename2) as a:
    reader=csv.reader(f, delimiter=' ')
    reader1=csv.reader(a, delimiter=' ')
    next(reader)
    next(reader1)
    for row in zip(reader, reader1):
        res.extend([row[0][0], row[1][1].replace("'", "")])
print(res)

<强>输出:

['1', 'Feb', '2', 'Mar', '3', 'May']