본문으로 바로가기

Pandas : CSV 파일 읽기

category 알고리즘/Pandas 2021. 1. 24. 22:41
728x90
반응형

딥러닝에 사용할 데이터는 주로 CSV 형식의 파일로 저장됩니다. CSV(Comma Separated Value) 파일은 데이터를 콤마(,)로 구분하여 저장합니다. 콤마뿐만 아니라 세미콜론(;), 공백( ), 탭('\t') 등으로 구분하여 저장할 수 있습니다.

 

1. 아래의 사이트에 접속하여 CSV 파일 형식으로 저장된 우리나라 기온 데이터를 다운로드 합니다.

data.kma.go.kr/stcs/grnd/grndTaList.do?pgmNo=70

 

기상자료개방포털[기후통계분석:통계분석:기온분석]

지점별로 기온의 시계열 분석을 확인합니다. 일, 월, 연의 평균기온, 최저기온, 최고기온을 각각 조회할 수 있습니다. * (그래프) 평균최고(최저)기온: 일최고(최저)기온의 월평균 * '지역/지점'

data.kma.go.kr

지역을 먼저 선택하고, 다운로드할 기간을 선택한 후 "검색" 버튼을 클릭하여 데이터를 불러옵니다. 오른쪽에 있는 "CSV" 버튼을 클릭하여 파일을 다운로드합니다.

 

아래의 그림은 텍스트 에디터로 다운로드 한 파일을 읽은 것입니다. 데이터가 콤마로 구분되어 있습니다.

 

이 파일을 엑셀로 읽어 보면 아래의 그림과 같습니다.  데이터 시작 부분에 날짜, 지점, 평균기온, 최저기온, 최고기온의 header가 나열되어 있고 이 헤더 열을 기준으로 데이터가 배열되어 있습니다.

위의 데이터 파일에서 불필요한 7개 행을 삭제하고 header와 데이터 부분을 다시 저장합니다.

 

 

Pandas( https://pandas.pydata.org) 는 빅데이터 분석에 사용되는 라이브러리입니다. 사용하기 쉽고 업데이트와 커뮤니티가 잘 활성화되어 있어 많이 사용하고 있습니다.

Pandas의 read_csv() 함수는 Pandas의 dataframe 구조를 사용하여 csv 파일을 읽어 들입니다.  아래의 예제처럼 파일의 위치를 지정하면 dataframe 구조를 리턴합니다. 파라미터인 "encoding = 'euc-kr'은 한글 헤더 때문에 필요합니다.

 

import pandas as pd

csvdata = pd.read_csv("2001_2101_seoultemp.csv", encoding = 'euc-kr')
csvdata

아래의 예처럼 header = None 파라미터를 사용하면 헤더를 자동으로 만들어 줍니다.

 

import pandas as pd

csvdata = pd.read_csv("2001_2101_seoultemp.csv", encoding = 'euc-kr', header = None)
csvdata

 

read_csv() 함수의 각종 파라미터는 판다스 공식 문서를 참조하시기 바랍니다.

 

pandas.read_csv — pandas 1.2.1 documentation

Delimiter to use. If sep is None, the C engine cannot automatically detect the separator, but the Python parsing engine can, meaning the latter will be used and automatically detect the separator by Python’s builtin sniffer tool, csv.Sniffer. In addition

pandas.pydata.org

 

1.filepath_or_buffer : 파일경로/파일이름.csv, file://localhost/path/tp/table.csv
2.sep or delimiter : 구분자로 기본값은 콤마(,), 기본값 이외의 값으로 슬래쉬(/), 탭(\t) 사용 가능
3.header : 헤더로 사용할 행 번호 지정, 기본값은 0, None일 경우 임의로 헤더명 지정
4.names : 헤더의 이름을 리스트 타입으로 정의할 때 사용
5.index_col : 인덱스로 사용할 열의 번호 지정

이 외의 다양한 파라미터들이 있습니다. 자세한 내용은 위의 판다스 공식 문서를 참조하시기 바랍니다.

 

728x90
반응형