Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas – fillna()로 누락된 열 값(NaN)을 상수 값으로 채우는 방법

Pandas에서 fillna() 메서드를 사용하면 데이터프레임에 존재하는 누락된 값(NaN)을 손쉽게 처리할 수 있습니다. 매개변수 value에 원하는 상수 값을 지정하면 모든 결측치를 해당 값으로 한 번에 대체할 수 있습니다.

1단계: 라이브러리 임포트

먼저 필요한 라이브러리를 각각의 별칭과 함께 임포트합니다.

import pandas as pd
import numpy as np

2단계: NaN 값이 포함된 DataFrame 생성

'Car'와 'Units' 두 개의 열을 가진 DataFrame을 생성합니다. 이때 NumPy의 np.NaN을 사용하여 의도적으로 결측치를 설정했습니다.

dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
    }
)

생성된 DataFrame에는 'Units' 열에 세 개의 NaN 값이 존재합니다.

3단계: 상수 값 정의

NaN 값을 대체할 상수 값을 정의합니다. 여기서는 200을 사용하겠습니다.

constVal = 200

4단계: fillna()로 NaN 값 대체

fillna() 메서드에 value 매개변수로 상수 값을 전달하고, inplace=True 옵션을 지정하여 원본 DataFrame을 직접 수정합니다.

dataFrame['Units'].fillna(value=constVal, inplace=True)

전체 예제 코드

지금까지의 과정을 하나의 코드로 정리하면 다음과 같습니다.

import pandas as pd
import numpy as np

# DataFrame 생성
dataFrame = pd.DataFrame(
    {
        "Car": ['BMW', 'Lexus', 'Lexus', 'Mustang', 'Bentley', 'Mustang'],
        "Units": [100, 150, np.NaN, 80, np.NaN, np.NaN]
    }
)

print("DataFrame ...\n", dataFrame)

# NaN이 있는 열('Units')에 적용할 상수 값 정의
constVal = 200

# NaN 값을 상수 값 200으로 대체
dataFrame['Units'].fillna(value=constVal, inplace=True)

print("\nNaN 값을 상수 값으로 채운 후 업데이트된 DataFrame...\n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

DataFrame ...
        Car   Units
0      BMW   100.0
1    Lexus   150.0
2    Lexus     NaN
3  Mustang    80.0
4  Bentley     NaN
5  Mustang     NaN

NaN 값을 상수 값으로 채운 후 업데이트된 DataFrame...
        Car   Units
0      BMW   100.0
1    Lexus   150.0
2    Lexus   200.0
3  Mustang    80.0
4  Bentley   200.0
5  Mustang   200.0

실행 결과를 보면 'Units' 열에 있던 세 개의 NaN 값이 모두 상수 값 200으로 성공적으로 채워진 것을 확인할 수 있습니다. 참고로 숫자 열에 NaN이 포함되면 해당 열의 데이터 타입은 자동으로 실수형(float)으로 변환됩니다.