2016-07-26 72 views
1

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

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

我看懒读书的例子,但我发现很难将它们转换为CSV格式:

而且,不幸的是熊猫Dataframes不在这种情况下是一个选项。

我可以从哪里开始?

感谢

+0

我理解你的意思吗,你想要一个能产生不同CSV文件的行对的生成器吗? – jotasi

+1

你试过了什么?上市要求是不够的。此外,更明确你的情况。 X和y是两个csv文件的列吗? X是大写还是y是小写? – mhoff

+0

我已经添加了对我尝试过的解决方案的引用,并将y更正为Y(X和Y都是浮点数组)。 –

回答

3

你可以有一台发电机,读取从两个不同的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)