본문 바로가기

DS/fast campus daily report

6.13 (머신러닝과 데이터분석 A-Z) column간 상관관계 계산하기, nan 데이터 처리, 숫자/범주형 데이터 이해, 수자 데이터의 범주형 데이터화

column간 상관관계 계산하기(3:23)

  • 두 변수간의 흐름이 얼마나 관계가 있는지 알아보는 것 (-1<상관관계<1)
  • 1에 가깝다고 해서 두 변수가 꼭 인과관계가 있다고 할 수는 없다
  • 0에 가까울 수록 상관관계가 없다
  • dataframe에서 corr 함수 이용
train_data.corr()
// 함수결과를 출력하기
  • 행렬의 대각 값은 항상 1

NaN 데이터 처리(12:16)

  • 결측값 
  • info함수를 통해 갯수 확인
  • isna함수를 통해 boolean 타입으로 확인
train_data.info()
train_datda.isna() // 값이 True인 경우 NaN을 뜻함
train_data['Age'].isna() // Age 컬럼에 대해 NaN 결과 확인

NaN 처리방법

  • drop na
  • subset 이용
  • NaN값 대체하기
train_data.dropna() // NaN 이 있는 row level 삭제
train_data.dropna(subset=['Age','Cabin'])  // row level 삭제
train_data.dropna(axis=1) // Age, Cabin, 등 column  없어짐, column 에 결측값이 하나라도 있으면 삭제

// NaN 값 대체하기, NaN에 Age mean() 값으로 대체하기
 train_data['Age'].fillna( train_data['Age'].mean() );
 
 // mean1 : 생존자 나이 평균, mean0 : 사망자 나이 평균
 train_data[train_data['Survived']==1]['Age'].fillna(mean1)

숫자/범주형 데이터 이해(3:37)

  • info 함수로 각 변수의 데이터 타입 확인,
  • 문자형 object, 숫자형 int, 실수형 float 

범주형 데이터

  • 데이터 분석에 바로 활용할 수 없음

숫자 데이터의 범주형 데이터화(6:40)

Pclass 변수 변환하기 : 숫자형으로 보이지만 범주형

train_data.info()
train_data['Pclass'] = train_data['Pclass'].astype(str)

numpy, pandas 활용할 때, for while 최대한 지양한다

Age변수 변환하기

import math
def age_categorize(age) :
   if math.isnan(age):
      return -1
   return math.floor(age/10) * 10
   
train_data['Age'].apply(age_categorize)  // apply 통해서 변환 가능

학습 후