예전에 spss를 통해 통계 분석을 하는 법을 배웠을 때는 '파일-열기'를 통해 spss로 읽으려는 데이터 파일을 불러오면 자동으로 데이터 파일을 읽어올 수 있었습니다.
파이썬으로 데이터 분석을 할 때도 마찬가지로 데이터 파일을 불러와야 파이썬 명령어를 통해 데이터 분석을 진행할 수 있습니다. 파이썬에서는 pandas 라이브러리가 이러한 기능을 제공합니다. pandas 라이브러리를 통해 데이터 베이스를 불러오거나 조작하고, 간단한 수식과 시각화 작업을 수행할 수 있습니다.
먼저 데이터를 불러오기 위해 pandas 라이브러리를 불러옵시다.
# pandas 라이브러리를 pd라는 이름으로(as) 가져오겠다(import)는 명령어
import pandas as pd
라이브러리를 불러왔으니, pandas를 활용하여 가지고 있는 데이터 파일을 읽어볼 차례입니다.
읽어오려는 데이터 파일의 확장 형식에 따라 다른 명령어를 사용합니다.
(pandas는 '.csv'나 '.xlsx' 파일부터 spss 데이터 파일 형식인 '.sav' 파일까지 다양한 형식의 데이터 파일을 불러올 수 있습니다.)
여기서는 가장 많이 사용되는 'csv' 파일을
마찬가지로 연습 용으로 많이 사용되는 'titanic' dataset을 읽어오는 예시를 통해 살펴보도록 합시다.
pandas.read_csv()
read_csv의 괄호명에 불러오려는 데이터 파일이 있는 경로명을 입력하면 데이터 파일을 파이썬으로 불러올 수 있습니다. (url이나 로컬 경로 모두 가능합니다.)
df라는 이름으로 타이타닉 데이터를 불러옵니다.
(만약 url을 통해 데이터를 불러오고 싶다면 'train.csv' 자리에 url 주소를 입력하면 됩니다.)
df = pd.read_csv('train.csv')
읽어온 데이터를 .head() 명령어를 통해 확인합니다.
df.head()

pandas.read_csv() 파라미터
titanic dataset은 불러오기 쉽게 구성되어 있지만, 모든 데이터가 그런 것은 아닙니다.
어떤 데이터들은 column 명이 설정되어 있지 않거나, encoding 형식을 지정해주어야 읽어올 수 있습니다.
이러한 데이터를 읽으려면 read_csv()의 파라미터를 조정해야 합니다.
공식 문서를 통해 read_csv의 파라미터들을 확인할 수 있습니다.
(링크 : https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html)
아래는 자주 쓰이는 파라미터들입니다.
- sep / delimiter
: csv 파일의 column들을 구분하는 기준을 설정하는 파라미터입니다.
일반적으로 로컬에서 csv 파일을 열면 엑셀 스프레트 시트로 열리지만, csv 파일은 몇 가지 필드를 ',', 'tab' 등으로 구분하는 파일입니다.
sep의 기본값은 ,(콤마)이기 때문에 따로 설정을 하지 않는다면, 구분 형식이 콤마가 아닌 파일을 읽어올 수 없습니다. 이러한 데이터의 경우 구분 형식을 지정해주어 읽어옵니다.
예 : sep = '\t'
# ','는 기본값으로 굳이 넣을 필요는 없지만, 사용 예시를 보여주기 위해 설정했습니다.
df = pd.read_csv('train.csv', sep=',')
- index_col
: 인덱스로 사용할 열을 입력하는 파라미터입니다.
인덱스로 사용하고자 하는 column의 위치를 입력하거나, 이름을 입력하는 방식으로 사용합니다.
예 : index_col = 0 / index_col = 'PassengerId'
df = pd.read_csv('train.csv', index_col = 'PassengerId')

cf) index_col을 'None'으로 설정하면(index_col=None) 첫 번째 열을 인덱스로 사용하지 않을 수 있습니다.
또한, index_col에 여러 열을 지정하면 multi-index를 사용할 수 있습니다.
df = pd.read_csv('train.csv', index_col = [0, 1])

- header
: 칼럼명을 지정하는 파라미터입니다.
header에 사용하려는 컬럼 명이 있는 row의 위치를 입력하는 방식으로 사용합니다.
'header=None'으로 설정할 경우, 사용하려는 칼럼 명이 없다는 것을 의미합니다.
첫 번째 column을 사용하고 싶다면, 'header=0'으로 설정하면 됩니다.
df = pd.read_csv('train.csv', header=None)

cf) 마찬가지로 multi-column 설정이 가능합니다.
- names
: 칼럼명을 지정할 때 사용합니다.
names = [ ]의 리스트 안에 칼럼명으로 사용하고자 하는 값을 입력하면, 입력한 값을 칼럼 명으로 사용할 수 있습니다.
df = pd.read_csv('train.csv', names = ['col1', 'col2', 'col3', 'col4'])

cf) names으로 입력하는 컬럼 명이 실제 컬럼 숫자보다 적을 경우, 남은 칼럼은 자동으로 인덱스로 지정됩니다.
- encoding
가끔 별도로 encoding 형식을 지정해주어야 하는 경우가 있습니다.
특히 공공데이터의 경우, 대부분의 경우 별도로 encoding 형식을 지정해주어야 합니다.
자주 쓰게 될 encoding 형식으로는 'utf-8', 'cp-949', 'euc-kr' 등이 있습니다.
'Data Analysis' 카테고리의 다른 글
[Pandas] 자주 사용했던 기능들 정리 -3. iloc/loc (0) | 2022.07.16 |
---|---|
[Pandas] 자주 사용했던 기능들 정리 - 2. 결측치 처리 (0) | 2022.07.10 |
[Pandas] 자주 사용했던 기능들 정리 - 1. 데이터프레임 정보 확인하기 (0) | 2022.07.03 |
[데이터 사이언스] Data Preprocessing(데이터 전처리) & Feature Engineering(특성 공학) (0) | 2022.06.07 |
[데이터 사이언스] EDA (Explanatory Data Analysis) (0) | 2022.06.06 |