본문 바로가기
파이썬

파이썬 대용량 CSV 파일을 부분적으로 어떻게 읽을 수 있습니까?

by º기록 2020. 11. 26.
반응형

나는 매우 큰 csv 파일을 가지고있어서 그것들을 모두 메모리로 읽을 수 없습니다. 몇 줄만 읽고 처리하고 싶습니다. 그래서 나는 기본 파이썬이 이것을 잘 처리 할 수있는이 작업을 처리 할 수있는 Pandas의 함수를 찾고 있습니다.

with open('abc.csv') as f:
    line = f.readline()
    # pass until it reaches a particular line number....

그러나 pandas에서 이렇게하면 항상 첫 번째 줄을 읽습니다.

datainput1 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )
datainput2 = pd.read_csv('matrix.txt',sep=',', header = None, nrows = 1 )

팬더에서이 작업을 처리하는 더 쉬운 방법을 찾고 있습니다. 예를 들어 1000에서 2000까지의 행을 읽으려면 어떻게해야합니까?

데이터 프레임으로 데이터를 읽고 싶기 때문에 팬더를 사용하고 싶습니다.

 

해결 방법

 


for df in pd.read_csv('matrix.txt',sep=',', header = None, chunksize=1):
    #do something

두 번째 부분에 답하려면 다음을 수행하십시오.

df = pd.read_csv('matrix.txt',sep=',', header = None, skiprows=1000, chunksize=1000)

이것은 처음 1000 개 행을 건너 뛰고 1000-2000 행을 제공하는 다음 1000 개 행만 읽습니다. 끝점을 포함해야하는지 여부는 명확하지 않지만 원하는 것을 얻기 위해 숫자를 조작 할 수 있습니다.

 

참조 페이지 https://stackoverflow.com/questions/29334463

 

 

반응형

댓글