본문 바로가기
AI 공부/파이썬

파이썬 (Pandas를 이용한 EDA)

by AI Sonny 2022. 8. 30.
728x90

EDA(Exploratory Data Analysis)

  • 탐색적 데이터 분석
  • 데이터를 분석하고 결과를 도출하는 과정에 있어서 지속적으로 해당 데이터에 대한 탐색과 이해를 기본적으로 가져야 한다는 의미

 


데이터 종류

- 수치형 데이터

  • 연속형
    • 일정범위 안에서 어떤값도 취할수 있는 실수형 데이터(ex. 온도, 키, 풍속 ,운임료)
  • 이산형
    • 횟수 같은 정수형 데이터(ex.사건에 대한 발행 횟수, 방개수, 부모자식수)

- 범주형 데이터

  • 가능한 범주안의 값만 취할수 있는 데이터
  • 성별: 남/여(명목형)
  • 전공: 경영학/교육학/인문학(명목형)
  • 장르: 스릴러/공포/드라마(명목형)
  • 영화평점: 1/2/3/4/5(순서형)
  • 직급: 대리/과장/차장/부장(순서형)

- Features , 독립변수, 설명변수

  • 학습데이터의 특성

- class, label, target , 종속변수

  • 정답데이터

수치형 데이터를 분석하기

  • 총합
df["fare"].sum()

=> 43550.4869

 

  • 평균
df["fare"].mean()

=> 33.29547928134557

 

  • 중앙값
df["fare"].median()

=> 14.4542

 

  • 분산
df["fare"].var()

=> 2678.959737892891

 

  • 표준편차
df["fare"].std()

=> 51.75866823917411

 

  • 분위수 계산하기
df["fare"].quantile([0.25,0.5,0.75])

=>
0.25     7.8958
0.50    14.4542
0.75    31.2750
Name: fare, dtype: float64

 

- 왜도(Skewness)

  • 데이터 분포의 비대칭도를 나타내는 통계량
  • 분포가 오른쪽으로 치우쳐져 있고, 왼쪽으로 긴꼬리를 가진경우 왜도는 음수
  • 분포가 왼쪽으로 치우쳐져 있고, 오른쪽으로 긴꼬리를 가진경우 왜도는 양수
  • 정규분포와 같이 좌우 대칭인경우 왜도는 0에 가까워진다.

df["fare"].skew()

=>  4.367709134122922

 

- 상관계수

  • 칼 피어슨(Karl Pearson)이 개발한 상관계수
  • 두개의 수치형 변수의 변화가 연관되는 정도
  • +1 ~ -1 사이의 값을 가짐
  • +1 에 가까울수록 양의 상관관계
  • -1 에 가까울수록 음의 상관관계
  • 0 에 가까울수록 상관관계 X
cols= ["survived","age","sibsp","parch","fare"]

df[cols].corr()

=>
	survived	age		sibsp		parch		fare
survived1.000000	-0.053695	0.002370	0.108919	0.233622
age	-0.053695	1.000000	-0.243699	-0.150917	0.178740
sibsp	0.002370	-0.243699	1.000000	0.373587	0.160238
parch	0.108919	-0.150917	0.373587	1.000000	0.221539
fare	0.233622	0.178740	0.160238	0.221539	1.000000

 


범주형 데이터 분석하기

 
  • 고유값 개수보기
df["embarked"].nunique()

=> 3

 

  • 고유값들 보기
df["embarked"].unique()

=> array(['S', 'C', 'Q', nan], dtype=object)

 

  • 최빈값
df["embarked"].mode() 

=>
0    S
dtype: object

 

  • 범주별 개수 보기
df["embarked"].value_counts()

=>
S    914
C    270
Q    123
Name: embarked, dtype: int64

 

  • 두 범주형 간에 관계보기
pd.crosstab(df["gender"],df["survived"],margins = True)  # 총 개수 = margin, survived 열 gender 행

=>
survived	0	1	All
gender			
female	81	385	466
male	734	109	843
All	815	494	1309

 


수치형 데이터와 범주형 데이터의 특징을 파악하여 그에 따른 결측치 처리 방법을 응용할 수 있다.

728x90

'AI 공부 > 파이썬' 카테고리의 다른 글

파이썬 (Matplotlib)  (0) 2022.08.31
파이썬 (Pandas를 이용한 전처리 - 1)  (0) 2022.08.30
파이썬 (Pandas 기초)  (0) 2022.08.30
파이썬 (Numpy)  (0) 2022.08.24
파이썬 (SQLAIchemy)  (0) 2022.08.23

댓글