Python Pandas : CSV 파일의 처음 n 개 행만 읽는 방법은 무엇입니까?


93

나는 매우 큰 데이터 세트를 가지고 있고 전체 데이터 세트를 읽을 여유가 없습니다. 그래서 훈련을 위해 한 덩어리 만 읽을 생각이지만 어떻게하는지 모르겠습니다. 어떤 생각이라도 감사하겠습니다.

답변:


160

처음 999,999 (헤더가 아닌) 행만 읽으려는 경우 :

read_csv(..., nrows=999999)

행 1,000,000 ... 1,999,999 만 읽으려는 경우

read_csv(..., skiprows=1000000, nrows=999999)

nrows : int, 기본값 없음 읽을 파일의 행 수. 대용량 파일 읽기에 유용합니다 *

skiprows : 목록과 같은 또는 정수 건너 뛸 행 번호 (0- 인덱싱) 또는 파일 시작 부분에서 건너 뛸 행 수 (int)

대용량 파일의 경우 chunksize를 사용할 수도 있습니다.

chunksize : int, 기본값 없음 반복을위한 TextFileReader 객체 반환

pandas.io.parsers.read_csv 문서


괜찮습니다. 약간 숨겨져 있습니다. 문서는 이러한 예제로 할 수 있습니다. chunksize약간 고통스럽기 때문에 크기가 고르지 않은 덩어리를 처리해야합니다. 또한 필요한 고정 크기로 배열 / 데이터 프레임을 미리 할당하고, 피할 수있을 때마다 동적으로 연결 / 추가하지 마십시오.
smci

... 또한 인터페이스가 nstart=,nend=.... 당신은 산술을해야합니다skiprows = nend - nrows
smci 2014 년

1
나는 그것이 SQL에서 인계 된 것 같다 : LIMIT nstart, skiprows: /
FooBar

... 또한 사용하는 경우 off-by-n 오류를 잊지 마십시오header=n/list
smci
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.