2016-07-26 24 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)