python合并csv文件

2016-07-26  本文已影响845人  wing文音

学一点总结一点,积少成多^_^

需求:有两个csv文件,需要按列合并。举例如下:

a.csv:

column1    column2    column3

a1               a21 a22      a31 a32

b1               b21 b2       b3   b32

b.csv:

column1    column2    column3

a1               a21 a22      a33

c                c1    c2        c31 c3

c.csv

column1     column2      column3

a1                 a21 a22      a31 a32 a33

b1               b21 b2       b3   b32

c                c1    c2        c31 c3

要求:把 a.csv 和 b.csv 按列合并,得到 c.csv。

实现:

hdr = 'column1, column2, column3'.split(',')

1. 核心算法函数:

def merge_dict1_into_dict2(dict1, dict2):

<tab>for k2, value2 in dict2.items():

<tab><tab>if k2 in dict1:

<tab><tab><tab>for idx in hdr:

<tab><tab><tab><tab>if value2 [idx] != dict1[k2][idx]

<tab><tab><tab><tab><tab>set1 = set(dict1[k2][idx].split(' '))

<tab><tab><tab><tab><tab>set2 = set(value2[idx].split(' '))

<tab><tab><tab><tab><tab>dict1[k2] = ' '.join(set1 | set2)

<tab><tab>else:

<tab><tab><tab>dict1[k2] = value2

2. 把 a.csv 和 b.csv 分别读到两个二维字典里:dict1, dict2

//明天再写...

dict1 = dict([(iter['column1'], iter) for iter in csv.DictReader(open('a.csv', 'r')) if 'column1' in iter])

merge_dict2_into_dict1(dict1, dict2)

3. 把用函数处理过的 dict1 写入 c.csv文件。

4. 有木有人知道tab键怎么敲,手工输‘<tab>’太累了。。。

上一篇下一篇

猜你喜欢

热点阅读