2013-05-31 2 views
2

필자는 누구나 CSV 파일을 열 단위로 읽을 수있는 빠른 기능을 제공하는 사람에게 익숙합니다. 과 대용량 데이터 (예 : CSV)를 효율적으로 읽을 수있는 방법을 제안 할 수 있습니까? CSV 파일의 i th 열을 예로들 수 있습니다.파이썬으로 csv 파일의 i 번째 열을 읽는 가장 좋은 방법은 무엇입니까?

나는 다음과 같은 있지만 시간이 소요 있습니다

import os,csv, numpy, scipy 
    from numpy import * 
    f= open('some.csv', 'rb') 
    reader = csv.reader(f, delimiter=',') 
    header = reader.next() 
    zipped = zip(*reader) 
    print(zipped[0]) # is the first column 

는 파이썬 (큰 파일)에서 데이터를 읽을 수있는 더 나은 방법이 있나요 (적어도 빠른 R과 같은 메모리의 측면에서)을? 다음은 COL을 얻을 전치, 메모리에 전체 파일을로드하는 당신이 zip를 사용하고있는

답변

2
import csv 

with open('some.csv') as fin: 
    reader = csv.reader(fin) 
    first_col = [row[0] for row in reader] 

. 열 값만 원하면 목록에 포함 시켜서 시작하십시오. 여러 열을 원한다면

, 당신은 할 수 : 또한 pandas.read_csv하고 use_cols 인수를 사용할 수 있습니다

from operator import itemgetter 
get_cols = itemgetter(1, 3, 5) 
cols = map(get_cols, reader) 
5

. here

import pandas as pd 

data = pd.read_csv('some.csv', use_cols = ['col_1', 'col_2', 'col_4']) 
...