2016-07-26 4 views
1

두 개의 서로 다른 CSV 파일에서 나오는 튜플 (X, Y)을 생성하는 파이썬 생성기를 작성해야합니다.대용량 CSV 파일을 읽는 파이썬 생성기

초기화시 일괄 처리 크기를 받아야하며 두 줄의 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) 
관련 문제