Shonny Data
[Python] 결측치 제거 / Null값 제거(NaN, NA 대체) / dropna · fillna 본문
Sparta_coding_club/Python
[Python] 결측치 제거 / Null값 제거(NaN, NA 대체) / dropna · fillna
데이터분석쇼니 2024. 1. 24. 16:00| 결측치 제거
- Pandas로 데이터를 다루다보면 특정 셀의 정보가 NaN으로 표시될 때가 있음 → 결측치
- 결측값 - NaN, NA, None...
- 결측값이란 데이터에 존재해야 하지만 누락되어 존재하지 않는 값
- NaN (Not a Number) 의 약어
- 결측값이 많을 경우 데이터의 통계적 신뢰성이 떨어지고 모델링에 악영향을 끼치기 때문에 전처리 필요
- dropna
- fillna
■ dropna
- dropna 함수는 결측값이 포함된 행이나 열을 삭제하는데 사용
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
- axis : {0: index / 1: columns} 결측치 제거를 진행 할 레이블입니다.
- how : {'any' : 존재하면 제거 / 'all' : 모두 결측치면 제거}
- tresh : 결측값이 아닌 값이 몇 개 미만일 경우에만 적용시키는 인수 입니다.예를들어, tresh값이 3이라면 결측값이 아닌 값이 3개 미만일 경우에만 dropna메서드를 수행합니다.
- subset : dropna메서드를 수행할 레이블을 지정합니다.
- inplace : 원본을 변경할지의 여부입니다.
import pandas as pd
import numpy as np
# Sample DataFrame 생성
df = pd.DataFrame({
'A': [1, 2, np.nan],
'B': [5, np.nan, np.nan],
'C': [1, 2, 3]
})
print(df)
# Output
A B C
0 1.0 5.0 1
1 2.0 NaN 2
2 NaN NaN 3
# 결측값이 있는 행 삭제
df.dropna()
# Output
A B C
0 1.0 5.0 1
■ fillna
- fillna 함수는 결측값을 특정 값으로 대체하는 데 사용
DataFrame.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None)
- value : 결측값을 대체할 값입니다. dict형태로도 가능합니다.
- method : 결측값을 변경할 방식입니다. (bfill - 아래값으로 변경 / ffill - 위값으로 변경)
- axis : {0 : index / 1 : columns} fillna 메서드를 적용할 레이블입니다.
- inplace : 원본을 변경할지 여부입니다. True일 경우 원본을 변경하게 됩니다.
- limit : 결측값을 변경할 횟수입니다. 위에서부터 limit로 지정된 갯수만큼만 변경합니다.
- downcast : 다운캐스트할지 여부입니다. downcast='infer'일 경우 float64를 int64로 변경합니다.
import pandas as pd
import numpy as np
# Sample DataFrame 생성
df = pd.DataFrame({
'A': [1, 2, np.nan],
'B': [5, np.nan, np.nan],
'C': [1, 2, 3]
})
print(df)
# Output
A B C
0 1.0 5.0 1
1 2.0 NaN 2
2 NaN NaN 3
# 결측값을 0으로 대체
df.fillna(0)
# Output
A B C
0 1.0 5.0 1
1 2.0 0.0 2
2 0.0 0.0 3
'Sparta_coding_club > Python' 카테고리의 다른 글
[Python] 랜덤 생성함수 / random · randint · randrange (0) | 2024.01.24 |
---|---|
[Python] 결측치 확인 / isna · notna · isnull · notnull (0) | 2024.01.24 |
[Python] loc / iloc 문법 (1) | 2024.01.23 |
[Python] datetime / timestamp 문법 (1) | 2024.01.23 |
Python - 파이썬 문법 뽀개기 총정리 ① (0) | 2024.01.04 |