본문 바로가기
ChatGPT 아카이브/Pandas

dropna() vs fillna() 비교 / NaN과 None의 차이

by Nanki 2025. 3. 4.

📌 dropna() 함수 개념 정리 표

항목설명

📌 무엇인가? dropna()는 결측값(NaN, None)이 포함된 행 또는 열을 제거하는 함수
❓ 왜 써야 하는가? NaN 값이 많으면 분석 및 모델 학습에 방해가 되기 때문
⚙️ 어떻게 동작하는가? axis, how, subset, inplace 등의 옵션을 사용하여 동작 방식 조절

🛠 dropna() 동작 방식 비교

옵션설명예제

기본 사용법 NaN이 포함된 제거 df.dropna()
열 제거 NaN이 포함된 제거 df.dropna(axis=1)
모든 값이 NaN인 행만 제거 일부 NaN이 아닌 값이 있으면 유지 df.dropna(how='all')
특정 열 기준으로 NaN 제거 해당 열에 NaN이 있는 행만 제거 df.dropna(subset=['age'])
원본 변경 (inplace=True) True로 설정하면 DataFrame 직접 수정 df.dropna(inplace=True)

📌 dropna() 핵심 암기법

💡 "NaN 포함 행 삭제 → dropna()"
💡 "NaN 포함 열 삭제 → dropna(axis=1)"
💡 "특정 열 기준 NaN 삭제 → dropna(subset=['열'])"
💡 "원본 수정 → dropna(inplace=True)"

🔥 결측값 처리는 dropna()와 fillna()를 함께 사용하면 더 효과적이야! 🚀

 

🛠 fillna() 동작 방식 비교

옵션설명예제

기본 사용법 NaN을 특정 값으로 대체 df.fillna(0)
컬럼별 다른 값으로 대체 각 열에 대해 다른 값 지정 df.fillna({'A': 0, 'B': 1})
이전 값(ffill)으로 채우기 위쪽(Forward) 값으로 NaN 대체 df.fillna(method='ffill')
다음 값(bfill)으로 채우기 아래쪽(Backward) 값으로 NaN 대체 df.fillna(method='bfill')
평균값으로 채우기 각 열의 평균값으로 NaN 대체 df.fillna(df.mean())
최대 몇 개의 NaN만 채우기 limit=n을 지정하여 최대 n개만 채움 df.fillna(0, limit=2)
원본 변경 (inplace=True) True로 설정하면 DataFrame 직접 수정 df.fillna(0, inplace=True)

📌 fillna() 핵심 암기법

💡 "NaN을 특정 값으로 채우기 → fillna(값)"
💡 "컬럼별 다르게 채우기 → fillna({'A': x, 'B': y})"
💡 "이전 값으로 채우기 → fillna(method='ffill')"
💡 "다음 값으로 채우기 → fillna(method='bfill')"
💡 "평균값으로 채우기 → fillna(df.mean())"
💡 "원본 수정 → fillna(inplace=True)"

🔥 결측값 처리는 fillna()와 dropna()를 적절히 조합하면 더 효과적이야! 🚀

 

📌 fillna() 함수 개념 정리 표

항목설명

📌 무엇인가? fillna()는 결측값(NaN, None)을 특정 값으로 채우는 pandas 함수
❓ 왜 써야 하는가? NaN 값이 많으면 분석 및 모델 학습에 방해가 되므로 보완하기 위해 사용
⚙️ 어떻게 동작하는가? 지정한 값, 평균, 이전 값 등으로 NaN을 채워 넣음

 

📌 dropna() vs fillna() 차이점

함수동작 방식결과사용 목적

dropna() NaN이 포함된 행 또는 열을 제거 데이터 크기 감소 불필요한 결측값 제거
fillna() NaN 값을 특정 값으로 대체 데이터 크기 유지 NaN 값을 보완하여 활용

 

 

📌 NaN vs None 차이점

구분NaN (Not a Number)None

데이터 타입 float 타입 (float64) NoneType
출처 NumPy, pandas에서 사용 기본적인 Python 값
연산 가능 여부 ✅ 수학 연산 가능 (NaN + 5 = NaN) ❌ 연산 불가능 (None + 5 → TypeError)
비교 연산 NaN == NaN → False (자기 자신과 비교 불가능) None == None → True
주로 사용되는 곳 pandas, NumPy 데이터 결측값 처리 Python 기본 변수, pandas에서도 사용 가능
결측값 변환 df.isna() 또는 df.fillna()로 처리 가능 자동으로 NaN으로 변환됨
반응형