Python生成器读取大型CSV文件

时间:2016-07-26 08:15:14

标签: python csv numpy bigdata

我需要编写一个Python生成器,它生成来自两个不同CSV文件的元组(X,Y)。

它应该在init上接收批量大小,从两个CSV逐行读取,为每一行产生一个元组(X,Y),其中X和Y是数组(CSV文件的列)。

我查看了懒惰阅读的例子,但我发现很难将它们转换成CSV格式:

另外,遗憾的是,在这种情况下,Pandas Dataframes不是一个选项。

我可以从哪个片段开始?

由于

1 个答案:

答案 0 :(得分:10)

你可以有一个生成器,它从两个不同的csv读取器中读取行,并将它们的行作为数组对生成。代码是:

import csv
import numpy as np

def getData(filename1, filename2):
    with open(filename1, "rb") as csv1, open(filename2, "rb") as csv2:
        reader1 = csv.reader(csv1)
        reader2 = csv.reader(csv2)
        for row1, row2 in zip(reader1, reader2):
            yield (np.array(row1, dtype=np.float),
                   np.array(row2, dtype=np.float)) 
                # This will give arrays of floats, for other types change dtype

for tup in getData("file1", "file2"):
    print(tup)