파이썬에서 큰 csv 파일 한번에 읽는 법
코드
y_test=[]
y_csv = open('y_test.csv', 'r', encoding='utf-8')
rdr = csv.reader(y_csv)
for line in rdr:
y_test.append(line[0])
y_csv.close()
보통 csv 파일을 읽어들일 때는 위와 같이 파이썬 내장함수 open
으로 열어서 한줄한줄 처리하지만, 반복문을 사용하는 시점에서 빅데이터의 처리에는 적합하지 않음을 짐작할 수 있다. 가령 700MB가 넘는 파일이라면 사실 별로 크지도 않은 편이지만 한줄한줄 읽어서는 끝이 없다.
pandas 패키지
이런 데이터를 다룰 때는 pandas 패키지를 사용하면 편리하다.
함수
- pandas.read_csv(filepath_or_buffer): filepath_or_buffer에 경로가 주어진 .csv파일을 읽어서 데이터프레임으로 반환한다. [ NOTE : header=None을 입력함으로써 헤더가 없는 파일을 읽어들일 수 있는데, 이렇게 따로 옵션을 주지 않으면 첫행을 헤더로 두기때문에 데이터 하나가 그냥 사라져버릴 수 있다. 분석을 하면서 사이즈가 안 맞는데 딱 하나 차이로 안 맞는다면 이 경우를 의심해볼 수 있다. ]
- pandas.read_excel: 이 함수를 통해 *.xlsx파일도 읽을 수 있다. 기본적인 사용법은 pandas.read_csv(filepath_or_buffer)와 흡사하며, 엑셀 파일에는 시트가 있는만큼 sheetname 옵션을 주어 어떤 시트를 읽을 것인지도 정해줄 수 있다.
메소드
- X.to_csv(path_or_buf): 데이터프레임 X를 path_or_buf에 .csv파일로 출력한다.
- X.to_excel(path_or_buf): 데이터프레임 X를 path_or_buf에 .xlsx파일로 출력한다.
- .head(): 첫 데이터 몇 개를 반환한다. 데이터를 잘 읽었는지 확인하는데에 필수적이다.
- .tail(): 마지막 데이터 몇 개를 반환한다.
프로퍼티
- .shape: 데이터의 모양을 나타낸다. 행이 $n$, 열이 $p$ 개면 (n, p)를 반환한다.