首页 > 解决方案 > 如何将csv文件中具有整数值的列拆分为新列

问题描述

我有一列数字,例如 22、23、25、32、33、36。我想将它拆分为 csv 文件中的新列,以便第一列有 22,第二列有 23,依此类推。

import csv
from csv import writer


COLUMNS = 6

with open("Winning No - Sheet1.csv", "r") as input:
    with open("output_file.csv", "w") as f:
        output = writer(f, delimiter=";")
        output.writerow(["Col {}".format(i+1) for i in xrange(COLUMNS)])
        buffer = []
        for row in input:
            buffer.append(row)
            if len(buffer) == COLUMNS:
                output.writerow(row.split(','))
                del buffer[:]

当我尝试这个时,我得到了 6 列,其中包含所有数字,第一列包含 22、23、25、32、33、36。第二列有另外六个数字。如何解决这个问题?

我想要的输出:

COL1 COL2 COL3 COL4 COL5 COL6 
22    23   25   32   33   36 

我得到的输出实际上是:

COL1        COL2          COL3       COL4     COL5       COL6 
22,23...,36 1,3,,...,36  3,4,...9  4,6,...7  8,9,...10  1,2,....7 

标签: pythoncsv

解决方案


您可能想要执行以下操作:

output.writerow(row.split(','))

我从未使用过 csv 模块,但它看起来还提供了一个阅读器,您可以使用它来进行解析。

更新了更多上下文:

with open("Winning No - Sheet1.csv", "r") as input:
    with open("output_file.csv", "w") as f:
        output = writer(f, delimiter=";")
        output.writerow(["Col {}".format(i+1) for i in xrange(COLUMNS)])
        for row in input:
            output.writerow(row.split(','))

推荐阅读