십대를 위한 코딩/십대를 위한 파이썬

코드 분석: NaN 값 포함 데이터 개수 확인

forSilver 2025. 2. 27. 20:59
반응형

🔍 코드 분석: NaN 값 포함 데이터 개수 확인

nan_age = titanic['Age'].value_counts(dropna=False)
nan_age

1. 코드 설명

  • titanic['Age']: 타이타닉 데이터셋에서 'Age' (나이) 열을 선택합니다.
  • .value_counts(dropna=False):
    • 각 연령대의 등장 횟수를 계산합니다.
    • dropna=False 옵션을 설정하면 NaN(결측값, 누락된 값)도 함께 계산됩니다.

2. value_counts(dropna=False) 동작 방식

import pandas as pd
import numpy as np

# 예제 데이터프레임 생성
data = {'Age': [22, 30, 25, np.nan, 22, 25, np.nan, 30, 22]}
df = pd.DataFrame(data)

# NaN 포함 값 개수 세기
age_counts = df['Age'].value_counts(dropna=False)
print(age_counts)

🎯 출력 결과:

22.0    3
30.0    2
25.0    2
NaN     2
Name: Age, dtype: int64
  • 22 세는 3번 등장
  • 30 세는 2번 등장
  • 25 세는 2번 등장
  • NaN (결측값)는 2번 등장

3. 결측치 개수 확인하는 방법

위 코드는 결측값(NaN)을 포함하여 개수를 세는 방식이지만, NaN 개수만 따로 확인하는 방법도 있습니다.

🔹 방법 1: isna().sum() 사용

print("NaN 개수:", df['Age'].isna().sum())

🎯 출력 결과:

NaN 개수: 2

🔹 방법 2: isnull().sum() 사용

print("NaN 개수:", df['Age'].isnull().sum())
  • isna()와 isnull()은 동일한 기능을 합니다.

4. NaN 값을 처리하는 방법

🔹 NaN 값을 특정 값으로 채우기 (fillna)

df['Age'].fillna(df['Age'].median(), inplace=True)  # 중앙값으로 채우기

🔹 NaN 값이 포함된 행 삭제 (dropna)

df.dropna(subset=['Age'], inplace=True)

🎯 결론

  • .value_counts(dropna=False): 각 값의 개수를 세면서 NaN도 포함
  • NaN 개수 확인: isna().sum() 또는 isnull().sum()
  • NaN 처리 방법: fillna()로 채우거나 dropna()로 삭제 가능