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

Python Pandas – interpolate() 메서드로 NaN 값 채우기

Pandas에서 결측치(NaN)를 채우는 방법 중 하나는 interpolate() 메서드를 사용하는 것입니다. 이 메서드는 누락된 값을 기존 데이터의 추세에 따라 선형 보간하여 자연스럽게 채워 줍니다.

예제 데이터 살펴보기

다음은 Microsoft Excel로 연 CSV 파일의 모습으로, 'Units' 열에 NaN 값이 일부 포함되어 있습니다.

Python Pandas – interpolate() 메서드로 NaN 값 채우기

CSV 파일을 DataFrame으로 불러오기

먼저 CSV 파일의 데이터를 Pandas DataFrame으로 불러옵니다.

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")

interpolate()로 NaN 값 채우기

이어서 interpolate() 메서드를 호출하면 NaN 값이 자동으로 보간됩니다.

dataFrame.interpolate()

전체 예제 코드

다음은 지금까지의 과정을 정리한 전체 코드입니다.

import pandas as pd

# CSV 파일의 데이터를 Pandas DataFrame으로 불러오기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesData.csv")
print("DataFrame...\n", dataFrame)

# interpolate()로 NaN 값 채우기
res = dataFrame.interpolate()
print("\n보간 후 DataFrame...\n", res)

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

DataFrame...
        Car   Reg_Price   Units
0       BMW        2500   100.0
1     Lexus        3500     NaN
2      Audi        2500   120.0
3    Jaguar        2000     NaN
4   Mustang        2500   110.0

보간 후 DataFrame...
        Car   Reg_Price   Units
0       BMW        2500   100.0
1     Lexus        3500   110.0
2      Audi        2500   120.0
3    Jaguar        2000   115.0
4   Mustang        2500   110.0

결과 해석

출력 결과를 보면 인덱스 1(Lexus)의 NaN 값이 앞뒤 값인 100.0과 120.0 사이의 선형 보간값인 110.0으로 채워졌습니다. 마찬가지로 인덱스 3(Jaguar)의 NaN 값도 120.0과 110.0 사이의 보간값인 115.0으로 계산되었습니다.

참고로 interpolate() 메서드는 기본적으로 선형(linear) 보간 방식을 사용하지만, method 매개변수를 통해 'polynomial', 'spline', 'ffill', 'bfill' 등 다양한 보간 방식을 지정할 수 있으므로 데이터의 특성에 맞게 활용하면 더욱 정확한 결측치 처리가 가능합니다.