하파와 데이터

df.describe(include='object') 데이터프레임 기술분석 다양하게 해보기 본문

Development/Python

df.describe(include='object') 데이터프레임 기술분석 다양하게 해보기

hhpp 2024. 1. 15. 22:16

일반적으로 데이터분석을 하거나, ML 등의 데이터를 기반으로 무언가를 작업할 때 데이터를 불러온 뒤 가장 처음하는 것이 데이터가 어떤 구조로 되어있는지? 살펴보는 것이다. 어려운 말로 하면 EDA (Exploratory Data Analysis, 탐색적 데이터 분석)라고 할 수 있다. 

간단한 앞서 '의사결정나무(DecisionTree)'를 해본 실습에서 사용했던 Diabates 데이터를 기반으로 이를 간단히 해보겠다. 

쉽게 해보는 실습은 아래 링크를 참조!(데이터파일도 아래 링크를 통해 kaggle에서 다운받을 수 있다. 

2024.01.13 - [Development/Python] - 의사결정나무 쉽게 따라해보기!(plot_tree그리기, 중요 feature 파악하기)

 

의사결정나무 쉽게 따라해보기!(plot_tree그리기, 중요 feature 파악하기)

머신러닝에서 많이 사용되는 방법 중 '의사결정나무'가 있다. 의사결정 나무의 장점으로는 어떤 기준으로 분류를 하는지 명확하게 확인할 수 있다는 것이다. 이에 의사결정나무(DecisionTree)를 그

hhpp.tistory.com

 

# 데이터 로드 및 데이터 형태 확인하기
df = pd.read_csv('data/diabates.csv')
df.shape  # (768,9)
df.head()

 

# info를 활용하여, 데이터프레임 내 각 컬럼의 데이터타입, 결측치, 메모리사용량 등의 정보 확인
df.info()  # 모두 숫자형, 결측치 없음, 메모리 사용량 54.1KB

 

자 이제 데이터도 확인하고, 데이터타입도 확인했다면, 어떤 분포로 값들이 있는지 확인해야한다. 생각도 없이 자연스레 바로 describe를 작성해보자!

# 기술통계 내보기
df.describe()

 

일반적으로 describe를 하면, 숫자형 데이터를 가지고 기술통계를 내준다. 근데 내 데이터에 문자형 데이터도 있다면 이것도 확인해야하지 않을까? 

 

우리같은 사람들이 쉽게 사용하게 만들어주기 위해서, 대단하신 분들께서는 역시나 이러한 기능도 만들어 두었다. include='object'를 파라미터로 넘겨주면 바로 나오게 된다. 

df.describe(include='object')

아쉽지만, 지금 위의 코드는 오류가 나온다. 왜나면... 지금의 diabates에는 문자형 데이터가 전무하기 때문이다.... 

 

이제야 알게 되었기에.. 글을 지우긴 아깝고... kaggle에 있는 데이터 가운데 문자데이터를 갖고 있는 데이터를 빠르게 불러와서 문자형 데이터를 기술분석해보고자 한다.

# 라이브러리를 로드합니다.
import pandas as pd
import numpy as np
import seaborn as sns
import matplotlib.pyplot as plt

# 데이터로드
df = pd.read_csv("https://bit.ly/telco-csv", index_col="customerID")
df.shape  #(7043, 20)

#기술분석
df.describe()  # df.describe(include='number')와 동일하다.

 

df.shape를 통해 확인하면, 20개의 컬럼이 있지만, 문자를 기술분석해보니, 3가지의 컬럼만 나온다. 즉 나머지 17가지 컬럼은 모두 문자형을 가지고 있다는 것이다. 자 이제 문자형을 분석해보자!!

 

# 문자형 데이터 기술분석
df.describe(include='object')

 

위의 결과를 보면 알 수 있듯, describe(include='object')만으로 문자형 데이터의 특징을 확인할 수 있게 해준다. 

df['gender].unique() 와 df['gender'].nunique() 등을 통해도 확인해볼 수 있지만, describe(include='object')를 사용하면 한줄로 모든 컬럼의 데이터를 빠르게 확인할 수 있다. 

 

매우 매력적인 방법이라고 생각된다! 모두 이걸로 분석 시작하세요!