如何将csv文件中的整数值列拆分为新列

2024-04-25 21:52:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一列数字,比如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 

Tags: columnscsvinimportforinputoutputas
1条回答
网友
1楼 · 发布于 2024-04-25 21:52:20

你可能想做一些类似的事情:

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(','))

相关问题 更多 >