출처: https://astrocosmos.tistory.com/202 [ASTROCOSMOS:티스토리] KT Aivle School 에이블스쿨 중간점검] 데이터전처리, 불필요한 부분 제거, 결측치 대체, 중앙값, 최빈값 :: 하나둘셋넷
728x90

KT Aivle School 에이블스쿨 중간점검] 데이터전처리, 불필요한 부분 제거, 결측치 대체, 중앙값, 최빈값

진행단계

  • 먼저 필요한 라이브러리들을 불러오자 - 데이터 전처리, 시각화
  • 데이터를 불러오고 데이터를 확인하자
  • 불필요한 부분을 제거하자
  • 데이터 결측치를 처리하자 - 최빈값으로 대체하자
  • 데이터 결측치를 처리하자 - 중앙값으로 대체하자

 

먼저 필요한 라이브러리들을 불러오자 - 데이터 전처리, 시각화

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

%matplotlib inline의 역할은 이와 같다.

 

데이터를 불러오고 데이터를 확인하자

df = pd.read_csv('voc_data.csv')   # csv 파일을 읽어오자                         
df.head()  # 앞부분 5줄을 출력하자                                                                  
df.tail()  # 뒷부분 5줄을 출력하자                                                                      
df.info()  # 데이터의 정보를 종합적으로 확인하자
df.info()     
df.index() # 데이터프레임의 인덱스 확인

df.columns # 데이터프레임 컬럼을 확인                                                               
df.values  # 데이터프레임 값을 확인

df['voc_trt_perd_itg_cd'].value_counts()  # voc_trt_perd_itg_cd 컬럼 데이터별 건수를 나열         
df['voc_trt_perd_itg_cd'].value_counts(normalize = True)

#  voc_trt_perd_itg_cd 컬럼 데이터별 건수 비율 보기

 

불필요한 부분을 제거하자

df1 = df.drop(columns=['voc_trt_perd_itg_cd', 'voc_trt_reslt_itg_cd', 'oos_cause_type_itg_cd', 'engt_cperd_type_itg_cd',
                                      'engt_tgt_div_itg_cd', 'fclt_oos_yn'], axis=1)

# 불필요한 컬럼 삭제
# DataFrame drop() 함수 사용
# 컬럼 삭제한 결과를 "df1" 데이터프레임에 저장한다.
# 다중 컬럼 삭제

df1.drop(columns = ['voc_mis_pbls_yn'], inplace = True) # 단일 컬럼 삭제

df.drop(columns = ['new_date','opn_nfl_chg_date', 'cont_fns_pam_date'], inplace =True)

# 다중 컬럼 삭제

 

데이터 결측치를 처리하자 - 최빈값으로 대체하자

df1.replace('_', np.nan, inplace = True) # 모든 컬럼에 대하여 '_' 값을 null로 변경한다.
df1.isnull().sum() # 변경이 잘 되었는지 확인한다.

최빈값이 L로 확인된다.

df1['cust_class_itg_cd'].value_counts()  # 최빈값을 찾자
df1['cust_class_itg_cd'].fillna('L', inplace = True)  # 최빈값 'L'로 결측치를 대체하자
df1['cust_class_itg_cd'].isnull().sum()  # 잘 대체되었는지 Null 값을 확인하자
df1.info()

 

데이터 결측치를 처리하자 - 중앙값으로 대체하자

df1['age_itg_cd'].median() # 중앙값을 확인하자

df1['age_itg_cd'].replace(np.nan, 위에서 계산한 중앙값, inplace = True)

# 위에서 나온 중앙값으로 Null 값을 대체하자.

df1['age_itg_cd'].dtypes # 데이터 타입을 확인하자

df1['age_itg_cd'] = df1['age_itg_cd'].astype(int) # 값을 정수형으로 변환하자

df1['age_itg_cd'].isnull().sum() # Null 값 개수를 확인하자

df1.info() # age_itg_cd가 "int32" 타입인지 확인하자
728x90

+ Recent posts