본문 바로가기

공부/판다스(Pandas)

[이진분류] Pandas를 이용하여 DataFrame 다루는 방법 / 데이터 다운받는 방법

이번 포스팅에서는 pandas를 사용하여 Dataframe을 다루는 방법에 대해서 다루어보려고 합니다. DataFrame은 간단하게 엑셀 시트라고 생각하면 됩니다. 데이터 프레임은 행과 열로 구성되는데, 행(row)은 각 데이터, 열(column)은 속성을 의미합니다. 데이터를 시각화하기 위해서는 먼저 파일을 읽어야 하기때문에 csv 파일을 어떻게 읽는지부터 차근차근 알려드리도록 하겠습니다. 또한 데이터를 읽어들이고 데이터가 어떻게 구성되어 있는지 확인하는데 자주 사용하는 함수들도 알려드리도록 하겠습니다.

 

 

그 전에 오늘 포스팅에서 사용할 데이터는 아래 링크를 따라가서 다운 받아주시면 됩니다. 이 데이터는 '신용카드 고객의 채무불이행 가능성 예측(default of credit card clients Data Set)으로 신용카드를 사용하는 고객들의 과거 데이터를 통해 앞으로 채무불이행을 할 가능성이 있는지 없는지를 예측하는 이진분류 문제입니다. 데이터 정보는 아래에 더 자세하게 설명하겠습니다. 일단 지금은 아래 링크를 따라가서 데이터 파일을 다운받아주시기 바랍니다.

 

 

https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients

 

UCI Machine Learning Repository: default of credit card clients Data Set

default of credit card clients Data Set Download: Data Folder, Data Set Description Abstract: This research aimed at the case of customers’ default payments in Taiwan and compares the predictive accuracy of probability of default among six data mining me

archive.ics.uci.edu

 

 

파일을 다운받으시면 엑셀 파일로 되어 있을텐데, csv 파일로 변경해서 저장해주세요. csv 파일로 바꾸려면 엑셀에서 다른 이름으로 저장한 후에 .csv로 저장하시면 됩니다. 저는 파일 이름은 그대로 'default of credit card clients'로 하였습니다. 그럼 폴더에 아래와 같이 'default of credit card clients.csv'라는 파일이 생긴 것을 확인할 수 있습니다.

 

 

 

 

 

 

pandas를 사용하기 위해서는 먼저 아래와 같이 pandas를 임포트 해줘야 합니다. pandas는 일반적으로 pd로 임포트를 하게 됩니다. tensorflow를 tf로, numpy를 np로 하는 것과 같다고 생각하시면 됩니다. 

 

 

import pandas as pd

 

 

그 다음은 csv 파일로 저장되어 있는 데이터를 불러와야 하는데, pd.read_csv로 csv 파일을 불러올 수 있습니다. 저는 이 데이터를 trainData라는 변수명으로 지정하고 불러오겠습니다. 괄호 안에는 저희가 위에서 다운받았던 csv 파일의 이름과 확장자명(.csv)을 입력해주시면 됩니다. 여기서 앞에 ./의 의미는 현재 폴더에 해당 파일이 있음을 의미합니다. 만약에 다른 폴더에 csv 파일이 있다면, 파일이 있는 경로를 입력해서 넣어주시면 됩니다. 

 

 

trainData = pd.read_csv('./default of credit card clients.csv')

 

 

 

그럼 trianData로 불러온 이 데이터의 행과 열이 몇 개로 이루어졌는지 궁금하실 수 있는데요. 이 때 사용하는 것이 shape이라는 함수입니다. 아래와 같이 shape 함수를 이용해주시면 데이터의 행과 열의 개수가 튜플로 반환되는데, (행의 개수, 열의 개수)로 보시면 됩니다. 그럼 이 데이터는 300001개의 데이터(행의 개수)와 25개의 변수(열의 개수)로 이루어진 데이터라는 것을 알 수 있습니다.

 

 

 

그럼 열은 어떤 키로 구성되어 있는지가 궁금하실 수 있을거예요. 그럴 때 아래와 같이 .columns를 사용해서 열이 어떤 키로 구성되어 있는지 확인해보실 수 있습니다. 

 

 

 

 

 

그럼 이 데이터가 잘 불러진건지, 데이터는 어떻게 생겼는지 확인을 하고 싶으실텐데요. 데이터를 위에서 5행까지 보여주는 head 라는 함수가 있습니다. 실행시키면 아래와 같이 결과를 보여줍니다. 보시면 X1(ID), X2(LIMIT_BAL), ... 로 열이 구성되어 있고, 위에서부터 5개의 데이터 값을 보여주는 것을 확인할 수 있습니다. 제일 윗 행은 속성 값이 표기되어 있는걸 확인할 수 있네요. 

 

 

 

 

head 함수를 이용해서 5행이 아니라, 10행을 확인하고 싶으시다면 아래와 같이 괄호 안의 n 파라미터로 갯수를 조정하실 수 있습니다. n=100이라고 기입하면 상위 100개의 데이터에 대한 정보를 확인하실 수 있습니다. 파라미터를 조금씩 바꿔가면서 확인해보세요. 익숙해지는 것이 좋습니다. 

 

 

 

 

위에서부터 데이터의 정보를 보기 위해서는 head라는 함수를 사용한 것과 같이 데이터의 가장 아래부터 몇 줄까지 보고 싶은 경우도 있는데요. 이럴 때 사용하는 함수는 tail이라는 함수입니다. 만약에 나는 아래에서부터 5행을 보고 싶다 하시는 분들은 tail이라는 함수를 사용하시면 확인할 수 있습니다. head 함수와 동일하게 10, 20개 등 자신이 보고 싶은 행의 갯수만큼 괄호 안에 입력하면 그만큼 보실 수 있습니다. 

 

 

 

 

그리고 숫자로 구성되어 있는 이 데이터의 통계치를 확인할 수 있는 함수도 있는데요. 이건 describe라는 함수입니다. 아래와 같이 .describe()라고 입력하면 각 열에 대해서 통계치를 확인할 수 있으니, 한 번 확인해보시기 바랍니다. 

 

 

 

 

다음으로는 info라는 함수가 있습니다. 이 함수는 데이터 타입, 각 아이템의 개수 등을 출력해주는 함수로 아래와 같이 각 열의 갯수뿐만 아니라 null칸이 있는지 없는지 확인할 수 있는 유용한 함수입니다.