본문 바로가기
Python

[Python]pandas 를 이용하여 csv 파일 다루기

by teamnova 2023. 7. 13.
728x90

판다스는 시계열 (series) 이나 표(table) 형태의 데이터를 다루는 패키지로써 
이러한 데이터를 다루기위한 시리즈(Series) 클래스와 데이터프레임(DataFrame) 클래스를 제공합니다.

 

오늘은 판다스를 이용해 csv 파일을 불러오고 다루는 예제를 작성해 보겠습니다. 

오늘 예제는 다음 블로그를 참고 하였습니다.

 

https://opentutorials.org/module/4966/28971

 

표를 다루는 도구 '판다스' - Tensorflow 101

수업소개 '판다스'를 이용하여 데이터 다루는 방법을 배우는 수업입니다, 모델을 학습시키기 위하여 파일로부터 데이터를 읽어들이고, 독립변수와 종속변수를 분리하여 데이터 준비합니다.

opentutorials.org

import pandas as pd

우선 판다스를 임포트해 줍니다.  혹 임포트가 안되는 경우 판다스 패키지 설치가 되어 있지 않은 상태일 수 있으니

pip install pandas

위코드를 실행해 판다스를 다운로드 후 진행해 주시길 바랍니다.

 

파일로 부터 데이터 읽어오기

###########################
# 파일로부터 데이터 읽어오기
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/lemonade.csv'
레모네이드 = pd.read_csv(파일경로)
 
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/boston.csv'
보스턴 = pd.read_csv(파일경로)
 
파일경로 = 'https://raw.githubusercontent.com/blackdew/tensorflow1/master/csv/iris.csv'
아이리스 = pd.read_csv(파일경로)

데이터의 모양 확인

###########################
# 데이터의 모양확인
print(레모네이드.shape)
print(보스턴.shape)
print(아이리스.shape)

shape 는 데이터프레임의 기본 함수로써 행과 열의 개수를 튜플로 변환해줍니다.

결과값

레모네이드 csv 의 경우 6개의 행과 2개의 열로 이루어진 표이고

보스턴의 경우 506개의 행과 14개의 열 

아이리스의 경우 150개의 행과 5개의 열을 가지고 있다는것을 알 수 있습니다.

데이터 칼럼 이름 확인

###########################
# 데이터 칼럼이름 확인
print(레모네이드.columns)
print(보스턴.columns)
print(아이리스.columns)

columns 는 해당 데이터의 컬럼(행) 에 해당하는 데이터를 보여줍니다. 

 

columns 실행 결과

레모네이드의 경우 온도판매량

보스턴 의경우 도시와 관련된 다양한 정보

아이리스의 경우 꽃과 관련된 정보가 들어가 있음을 확인할 수 있습니다.

독립변수와 종속변수 분리

 

###########################
# 독립변수와 종속변수 분리
독립 = 레모네이드[['온도']]
종속 = 레모네이드[['판매량']]
print(독립.shape, 종속.shape)
 
독립 = 보스턴[['crim', 'zn', 'indus', 'chas', 'nox', 
            'rm', 'age', 'dis', 'rad', 'tax',
            'ptratio', 'b', 'lstat']]
종속 = 보스턴[['medv']]
print(독립.shape, 종속.shape)
 
독립 = 아이리스[['꽃잎길이', '꽃잎폭', '꽃받침길이', '꽃받침폭']]
종속 = 아이리스[['품종']]
print(독립.shape, 종속.shape)

각각의 csv 파일들을 [['컬럼 이름']] 을 통해 해당 열의 정보만 담은 별도의 데이터로 분리할 수 있습니다.

위 코드는 독립변수와 , 종속변수를 구분해 각 파일에서 필요한 열의 정보를 저장하고 shape 를 통해 각 변수의 행렬 구조를 확인해보는 코드입니다. 

데이터 분리 결과

레모네이드 의 경우 데이터를 온도와 판매량으로 구분하여 

1개의 열과 6개의 행을 가진 데이터로 분리가 된걸 확인할 수 있고 

 이후 보스턴과 아이리스의 경우 
코드에 따라 필요한 열로 구성된 데이터로 분리된 것을 확인할 수 있습니다. 

 

각각의 데이터 확인해 보기

###########################
# 각각의 데이터 확인해보기
# 원본 데이터는 변화가 없음을 알 수 있음
print(레모네이드.head())#는 불러온 데이터의 상위 5개의 행을 출력
print(보스턴.head())
print(아이리스.head())

head() 는 해당 데이터의 상위5개의 행을 출력하는 함수 입니다. 

 

데이터를 새로운 변수에 담아서 분리해 준것으로 

기존의 csv 파일을 수정한것은 아닙니다. 

 

때문에 위 코드를 실행해 보면 

기존의 데이터는 변화 없이 형태를 유지하고 있는것을 확인하실 수 있습니다.