본문 바로가기
데이터분석과 AI/빅데이터 분석기사

[빅데이터분석기사 실기][작업형1] map()을 이용하여 결측치 처리하기

by 우공80 2023. 5. 24.
728x90

map을 이용하여 결측치 처리하기

Python에는 데이터의 결측치(누락된 값)를 처리하는 여러 가지 방법이 있습니다. 일반적으로 사용되는 몇 가지 방법은 다음과 같습니다.

  1. 결측치 삭제: dropna() 함수를 사용하여 결측치가 포함된 행 또는 열을 제거할 수 있습니다. axis 매개 변수를 지정하면 결측치가 있거나 특정 조건을 충족하는 행(axis=0) 또는 열(axis=1)을 삭제할 수 있습니다.

  2. 결측치 채우기: fillna() 함수를 사용하여 결측치를 지정된 값으로 채울 수 있습니다. 결측치를 상수 값으로 채우거나 전방 채우기(ffill), 후방 채우기(bfill) 또는 보간과 같은 다양한 방법을 사용하여 인접 값을 기반으로 누락된 값을 채우도록 선택할 수 있습니다.

  3. 결측값 대치: 대치에는 다른 관찰된 값을 기반으로 결측값을 추정하는 작업이 포함됩니다. 평균, 중앙값 또는 모드 대치와 같은 통계 방법을 사용하여 누락된 값을 채울 수 있습니다. scikit-learn 라이브러리의 SimpleImputer 클래스는 대체를 수행하는 편리한 방법을 제공합니다.

머신러닝 알고리즘을 통해 값을 예측하여 채우는 것도 가능합니다. 결측치를 채우는 방법의 선택은 데이터의 특성, 누락된 값의 범위, 구축 중인 분석 또는 모델의 특정 요구 사항에 따라 다릅니다.

 

아래 예제는 fillna()와 map() 함수를 사용하여, 각 class의 평균값으로 score를 채우는 예제입니다.

 

import pandas as pd

# Create a sample DataFrame with missing values
data = pd.DataFrame({'class': ['A','B','A','B','C','A','B','A','B','C'],
                     'score': [None,60,70,80,90,80,None,70,75,90]})

A_mean=data.loc[data['class']=='A','score'].mean()
B_mean=data.loc[data['class']=='B','score'].mean()
C_mean=data.loc[data['class']=='C','score'].mean()

print(A_mean)
# Map values to a new set of values using map()
data['score'].fillna(data['class'].map({'A': A_mean, 'B': B_mean, 'C': C_mean}),inplace=True)

print(data)

※ 위 내용은 "빅데이터 분석기사 실기 준비를 위한 캐글 놀이터"를 따라가며 공부한 내용입니다.

https://www.kaggle.com/datasets/agileteam/bigdatacertificationkr

728x90

댓글