python - 如何将大型 CSV 数据文件分解为单个数据文件?

标签 python csv

我有一个 CSV 文件,其中第一行包含变量名称,其余行包含数据。在 Python 中将其分解为每个只包含一个变量的文件的好方法是什么?这个解决方案是否可靠?例如。如果输入文件大小为 100G 怎么办?我正在尝试执行分而治之的策略,但对 Python 来说是新手。预先感谢您的帮助!

输入文件看起来像

var1,var2,var3
1,2,hello
2,5,yay
...

我想创建 3 个(或多个变量)文件 var1.csv、var2.csv、var3.csv 使文件类似于 文件1

var1
1
2
...

文件2

var2
2
5
...

文件3

var3
hello
yay

最佳答案

虽然列数不是很大(大于您在平台上可以同时打开的文件数),但行数和总大小也没什么大不了的(因为当然,只要您的磁盘上有足够的可用空间;-) 因为您一次只处理一列——我建议使用以下代码:

import csv

def splitit(inputfilename):
  with open(inputfilename, 'rb') as inf:
    inrd = csv.reader(inf)
    names = next(inrd)
    outfiles = [open(n+'.csv', 'wb') for n in names]
    ouwr = [csv.writer(w) for w in outfiles]
    for w, n in zip(ouwr, names):
      w.writerow([n])
    for row in inrd:
      for w, r in zip(ouwr, row):
        ouwr.writerow([r])
    for o in outfiles: o.close()

关于python - 如何将大型 CSV 数据文件分解为单个数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3331608/

相关文章:

python - 使用装饰器或元类为所有类设置公共(public)实例变量

Powershell:查找 CSV 列中的任何值并将其替换为单个值

python - 爬行时清空输出文件

python - 基于 raw_input 的 read_csv 数据框中的列位置的变量替换

sql - 尽管每列都使用了 varchar(MAX),但导入 CSV 文件时 SQL Server 中仍出现错误

python - 理解 python 中的点符号

python - 为什么两个单独创建的不可变对象(immutable对象)具有相同的 id 而可变对象具有不同的同时都引用相同的值?

python - 在python中自动处理e(科学)表示法中的数字

python - Pandas:合并(或内部联接)两个数据帧,但仅保留一个数据帧中的列

python - 如何导入带有 "occasional"引号的 csv(R 和/或 Pandas)?