将CSV列中的一行拆分为多行,使其他列在python中保持不变

时间:2019-06-03 11:24:52

标签: python-3.x csv

假设我有一个csv文件,每行有4列,如下所示:

712,713,714,  26   blah   blah

我想要这样的结果:

712    26    blah    blah 

713    26    blah    blah 

714    26    blah    blah 

现在,我将在python中读取csv文件,但是如何在不更改其他列的情况下拆分行,然后将结果写入另一个csv文件中。

p.s-我不了解熊猫,所以我会使用简单的csv模块

1 个答案:

答案 0 :(得分:0)

直接使用csv.readercsv.writer对象:

示例test.csv

712,713,714,  26   blah   blah
1,2,3,  11   aaa   bbb

import csv

inp_fname = 'test.csv'
out_fname = 'transposed.csv'

with open(inp_fname, 'r', newline='') as in_csvfile, \
        open(out_fname, 'w', newline='') as out_csvfile:
    reader = csv.reader(in_csvfile, delimiter=' ', skipinitialspace=True)
    writer = csv.writer(out_csvfile, delimiter='\t')

    for row in reader:
        for v in row[0].rstrip(',').split(','):
            writer.writerow([v] + row[1:])

最后transposed.csv个文件的内容:

712 26  blah    blah
713 26  blah    blah
714 26  blah    blah
1   11  aaa bbb
2   11  aaa bbb
3   11  aaa bbb