본문으로 바로가기

[Python] 결측치 다루기 (기초)

category Skills/Python 2021. 11. 4. 15:15
반응형

결측치를 다루는 방법은 다양하다.

 

평균 대치법에도 여러가지 종류가 있고,

 

생각보다 복잡한 방법들(다른 변수들과의 관계를 고려하는 것 등)이 있다.

 

하지만 그 중에서도 가장 기초가 되는 평균값 대치, 앞뒤값 배치, 제거 를 알아보자.

 

 

1. 평균값 대치

df['income'].fillna(df['income'].mean(), inplace=True)

 

2. 앞 뒷값으로 배치

fillna의 method = 'bfill', 'ffill' 를 이용한다.

df['income'].fillna(method='bfill') # 인덱스 뒤에 있는 데이터로 채우기 (behind)
df['income'].fillna(method='ffill') # 인덱스 앞에 있는 데이터로 채우기 (front)

보통은 아래 코드를 사용한다. 맨 앞 뒤값이 채워지지 않을 수도 있기 때문이다.

df['income'].fillna(method='bfill').fillna(method='ffill')

 

3. 제거하기

유추하기 어렵거나 채워넣을 수 있는 값이 없으면  제거해버린다.

df.dropna() # 행을 날림
df.dropna(inplace=True) # 데이터에 적용까지 완료
df.dropna(axis=1) # 열 자체를 날림

만약, 원하는 행에 대해서만 적용하고 싶다면, subset 옵션을 추가한다.

df.dropna(subset=['name', 'toy'])

 

 

 

Reference :

- https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.dropna.html

 

pandas.DataFrame.dropna — pandas 1.3.4 documentation

Determine if rows or columns which contain missing values are removed. Changed in version 1.0.0: Pass tuple or list to drop on multiple axes. Only a single axis is allowed.

pandas.pydata.org

 

반응형