python - 如何将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
解决方案
您可能想要执行以下操作:
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(','))
推荐阅读
- json - 如何在bash shell的数组中转义星号'*'
- sql-server - 关于用于 SQL 恢复的 Systools
- r - R中ExtractVars中的无效模型公式无缘无故
- java - Google Recaptcha 的 SSLHandshakeException
- php - 如何确定我的号码是否有 4 个小数位
- python-2.7 - 覆盖ndarray的getitem时numpy buggy slice停止
- javascript - Ploty.js 和 Vue 中 xticks 的自定义格式
- typescript - 里面有物体的matter.js圆形区域
- java - ProcessBuilder 和 Runtime.getRuntime().exec(cmd) 如何依赖 Bash 和 Sh 命令?
- r - 如何加快这个 for 循环?