728x90
반응형
안녕하세요. 바른 호랑이입니다.
이번 게시글에서는 Python의 데이터 분석을 위해 사용되는 Open source Library인 Pandas를 활용한 데이터 개요확인방법에 대해 알아볼 예정입니다.
데이터 분석을 시작하게 되면 EDA(Exploratory Data Analysis : 탐색적 데이터 분석)를 먼저 수행하고 본격적인 데이터 분석을 진행하는 경우가 많습니다. EDA란 수집한 데이터의 구조 및 이상치등과 같은 부분들을 간단하게 검토하여 데이터를 기초 통계수치나 그래프로 분석하여 데이터를 직관적으로 이해하는 일련의 과정이라고 할 수 있으며, Pandas에서는 이를 위해 여러가지 함수와 메소드들을 제공하고 있습니다. 모든 코드는 Colab 환경을 기준으로 작성하였으며, 보다 자세한 내용은 아래의 실습 파일을 참고하시면 되겠습니다.
※ 실습파일
# 필요 패키지 설치
!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
반응형
'IT & 데이터 사이언스 > Python' 카테고리의 다른 글
[Python Data Analytics] Python을 활용한 데이터 전처리(2) (0) | 2023.06.20 |
---|---|
[Python Data Analytics] Python을 활용한 데이터 전처리(1) (0) | 2023.06.19 |
[Python Data Analytics] Pandas를 활용한 데이터 입출력 (0) | 2023.06.18 |
[Python Data Analytics] Pandas를 활용한 데이터 조작(2) (2) | 2023.06.17 |
[Python Data Analytics] Pandas를 활용한 데이터 조작(1) (2) | 2023.05.20 |
댓글