본문 바로가기
IT & 데이터 사이언스/Python

[Python Data Analytics] Pandas를 활용한 데이터 개요확인

by 바른 호랑이 2023. 6. 18.
728x90
반응형

안녕하세요. 바른 호랑이입니다.

이번 게시글에서는 Python의 데이터 분석을 위해 사용되는 Open source Library인 Pandas를 활용한 데이터 개요확인방법에 대해 알아볼 예정입니다.

데이터 분석을 시작하게 되면 EDA(Exploratory Data Analysis : 탐색적 데이터 분석)를 먼저 수행하고 본격적인 데이터 분석을 진행하는 경우가 많습니다. EDA란 수집한 데이터의 구조 및 이상치등과 같은 부분들을 간단하게 검토하여 데이터를 기초 통계수치나 그래프로 분석하여 데이터를 직관적으로 이해하는 일련의 과정이라고 할 수 있으며, Pandas에서는 이를 위해 여러가지 함수와 메소드들을 제공하고 있습니다. 모든 코드는 Colab 환경을 기준으로 작성하였으며, 보다 자세한 내용은 아래의 실습 파일을 참고하시면 되겠습니다.

※ 실습파일

Python_DataAnalysis_04(General).ipynb
0.20MB

# 필요 패키지 설치
!pip install numpy
!pip install pandas

# 필요 패키지 로드
import numpy as np
import pandas as pd
import seaborn as sns

# seaborn이 제공하는 데이터 셋 확인
sns.get_dataset_names()

# 분석에 사용할 데이터 셋 로드
df = sns.load_dataset('mpg')
df.head()

'''
* 데이터 살펴보기
- head(), tail() : 데이터의 시작(끝) 지점부터 n개의 행을 확인함으로서 데이터를 일부 확인
- shape : dataframe의 행, 열의 개수를 tuple의 형태로 반환
- info : 클래스 유형, 행 인덱스의 구성, 열 이름의 종류와 개수, 각 열의 자료형과 개수, 메모리 할당량에 대한 정보가 포함되어 출력됨
+ pandas의 자료형 : int64(int), float64(float), object(string), datetime64 or timedelta64
- describe : 평균, 표준편차, 최대값, 최소값, 중간값 등과 같은 기술통계정보들을 요약해서 출력 
+ include : 열의 고유값 개수, 최빈값, 빈도수와 같은 정보를 추가로 요약하여 출력(추가 항목에 대해 유효한 값이 없으면 NaN으로 처리) 
- count : 각 열의 고유한 값의 개수를 반환 / NaN 포함하지 않고 유효한 값의 개수만 계산
- value_counts : 각 열의 고유값의 종류와 개수를 출력 / dropna가 True면 NaN을 제외하고 개수 계산(Defalut값은 False)
'''

print(
      f'--------------------------------------------------------------------------------\
      \n{df.head()}\
      \n--------------------------------------------------------------------------------\
      \n\n{df.tail()}\
      \n--------------------------------------------------------------------------------\
      \n{df.shape}\
      \n--------------------------------------------------------------------------------'
     )

print(df.info())

print(
      f'--------------------------------------------------------------------------------\
      \n{df.describe()}\
      \n--------------------------------------------------------------------------------\
      \n\n{df.describe(include="all")}\
      \n--------------------------------------------------------------------------------'
     )
     
 print(
      f'--------------------------------------------------------------------------------\
      \n{df.count()}\
      \n--------------------------------------------------------------------------------\
      \n{df.value_counts("horsepower", dropna=False)}\
      \n--------------------------------------------------------------------------------'
     )
     
 '''
* 데이터의 통계 수치 확인
- mean : 평균값 출력
- median : 중간값
- max, min : 최대, 최소값
- std : 표준 편차
- corr : 상관 계수
'''

print(
      f'--------------------------------------------------------------------------------\
      \n{df.mean()}\
      \n--------------------------------------------------------------------------------\
      \n{df.median()}\
      \n--------------------------------------------------------------------------------\
      \n{df.max()}\
      \n--------------------------------------------------------------------------------\
      \n{df.min()}\
      \n--------------------------------------------------------------------------------\
      \n{df.std()}\
      \n--------------------------------------------------------------------------------\
      \n{df.corr()}\
      \n--------------------------------------------------------------------------------'
     )
     
 '''
* Pandas의 plot함수를 활용한 데이터 시각화
- plot()함수의 메소드 종류
: line(선) / bar(수직막대) / barh(수평 막대) / his(히스토그램) / box(박스플롯) 
/ kde(커널 밀도) / area(면적) / pie(파이) / scatter(산점도) / hexbin(고밀도 산점도)
'''

# line graph 그리기
df.plot()

# 막대그래프 그리기
df[['horsepower', 'weight']][:5].plot(kind='bar')

# 히스토그램 그리기
df[['horsepower']].plot(kind='hist')

# 산점도 그리기
df.plot(x='weight', y='mpg', kind='scatter')

# 박스플롯 그리기
df[['mpg', 'cylinders']].plot(kind='box')

P.S 더 나은 개발자가 되기위해 공부중입니다. 잘못된 부분을 댓글로 남겨주시면 학습하는데 큰 도움이 될 거 같습니다.

728x90
반응형

댓글