美文网首页
python合并csv文件

python合并csv文件

作者: wing文音 | 来源:发表于2016-07-26 23:07 被阅读845次

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

    需求:有两个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>’太累了。。。

    相关文章

      网友评论

          本文标题:python合并csv文件

          本文链接:https://www.haomeiwen.com/subject/tcfqjttx.html