[pandas] 1. csv파일 불러오기(pd.read_csv) / 내보내기(df.to_csv) 사용법 (sep, skiprows, index_col, utf-8, cp949, na_values, names)
01. 판다스(pandas) 라이브러리 import
import pandas as pd
우선 판다스(pandas)를 사용하기 위해서 해당 라이브러리를 import 해준다.
02. csv파일 불러오기 : pd.read_csv( )
pd.read_csv()
pd.read_csv() 를 이용하여 데이터를 불러오자. 괄호 안에 '파일명' 혹은 '파일 경로'를 적어주면 된다. 그냥 pd.read_csv로 파일을 불러올 수 있지만, 파일을 불러올 때부터 그것을 하나의 변수로 선언하는 것이 일반적이다.
03. 구분자 : sep = '|' / '\t'
기본적으로 csv파일은 쉼표(comma)로 데이터 값이 구분되기 때문에 따로 구분자를 설정할 필요가 없다. 하지만 콤마(,)가 아닌 다른것으로 구분자가 설정되어있을 경우 데이터를 그냥 불러오게 되면 에러가 발생한다. 따라서 이러한 경우 sep을 설정해주어야 한다.
pd.read_csv('파일명', sep = '|')
pd.read_csv('파일명', sep='\t')
04. 인코딩 : encoding = 'utf-8' / 'cp949'
내가 불러오고자 하는 파일의 encoding과 python encoding의 설정이 맞지 않으면 에러가 발생한다.(UnicodeDecodeError) 이러한 경우 encoding = 'utf-8' 혹은 encoding = 'cp949'로 설정해준다.
pd.read_csv('파일명', encoding = 'utf-8')
pd.read_csv('파일명', encoding='cp949)
05. 특정 줄은 제외하고 파일 불러오기 : skiprows
데이터를 불러온 뒤, 해당 값들을 확인해보니 13번째행까지 이상한 값이 들어있다.
이러한 경우 본래 csv파일을 열어보면 데이터 위에 안내사항 또는 불필요한 글들이 적혀져있음을 확인할 수 있다. 실제 내가 보고자 하는 값들은 15번째 행부터 있기 때문에 이러한 경우 skiprows를 사용하여 15번째 행(row)를 빼고 나머지 표만 불러오도록 하자.(header 포함하여 삭제하므로 15개)
pd.read_csv('파일명', skiprows= 숫자)
skiprows에 내가 스킵하고싶은 행의 개수를 적어주면 된다. skiprows =15를 적어주어 15번째 행까지 스킵해보면 16번째 행부터 출력되었음을 알 수 있다.
06. 특정 열(columns)을 index로 지정 : index_col = 1(인덱스 번호) / '칼럼명'
데이터를 불러올때부터 특정columns를 index로 지정하고 싶다면 index_col 을 사용하면 된다. 이번의 경우 '성별'칼럼을 인덱스로 지정해보도록 하자.
〰️ 방법 1 ) 해당 칼럼의 인덱스 번호를 적어준다
'성별'칼럼은 전체 데이터 프레임에서 2번째에 있으므로 index_col =1(0부터 카운트 하므로 2번째있는 행은1로 인덱싱해와야 함)을 입력한 뒤, 결과를 확인해보면 '성별' column이 인덱스로 지정되었음을 알 수 있다.
pd.read_csv('파일명', index_col = 1)
〰️방법 2) 해당 칼럼명을 적어준다.
index_col에 내가 인덱스로 지정하고 싶은 칼럼명을 적어준 뒤, 확인해보면 해당 칼럼이 인덱스로 지정되었음을 알 수 있다.
pd.read_csv('파일명', index_col='칼럼명')
07. 칼럼 명 변경 : names = [ ]
이번에는 데이터를 불러올 때 칼럼명을 바꿔서 가져와보자. 기존 데이터 프레임의 칼럼명은 위와 같다.
pd.read_csv('파일명', names=['칼럼명1', '칼렴명2']
names 와 대괄호를 이용하여 데이터 프레임의 칼럼 순서에 맞춰 변경할 칼럼명을 적어주면 된다.
08. 특정 값을 NaN으로 취급 : na_values
데이터를 불러올 때 특정 값들을 NaN 취급하여 불러와보자. 해당 데이터 프레임에서 'Embarked' 칼럼에 있는 'Q'값을 모두 NaN 취급하고 싶다면, na_values = ['Q']로 써준다.(여러 값 한 번에 가능)
pd.read_csv('파일명', na_values='결측으로 처리 할 데이터값')
결과를 출력해보면 'Q'값이 NaN으로 취급되었음을 알 수 있다.
09. csv으로 저장 : df.to_csv
마지막으로, 해당 데이터프레임(df1)을 csv파일로 저장해보자.
df.to_csv('파일명.csv')
to_csv( ) 를 이용하여 괄호 안에 내가 저장하고 싶은 파일명을 적어준 뒤, 실행시킨다. 이렇게 저장한 파일은 해당 스크립트가 있는 폴더 혹은 위치에 생성된다.