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

Python Pandas – DataFrame의 모든 NaN(결측값)을 0으로 바꾸는 방법

Pandas DataFrame에 포함된 NaN(결측값)을 0으로 일괄 변경하려면 fillna() 메서드를 사용하면 됩니다. 이 메서드는 DataFrame 내의 모든 결측값을 지정한 값으로 손쉽게 채워 줍니다.

예를 들어, 아래는 Microsoft Excel로 연 CSV 파일의 모습으로, 일부 셀에 NaN 값이 존재합니다.

Python Pandas – DataFrame의 모든 NaN(결측값)을 0으로 바꾸는 방법

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

먼저 필요한 라이브러리를 임포트합니다.

import pandas as pd

2단계: CSV 파일 불러오기

CSV 파일의 데이터를 Pandas DataFrame으로 읽어 옵니다.

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

3단계: fillna()로 NaN을 0으로 대체

fillna() 메서드에 0을 인자로 전달하면 DataFrame의 모든 NaN 값이 0으로 바뀝니다.

dataFrame.fillna(0)

전체 예제 코드

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

import pandas as pd

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

# NaN 값을 0으로 대체
res = dataFrame.fillna(0)
print("\nNaN 값 대체 후 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

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

추가 팁

fillna()는 기본적으로 원본 DataFrame을 수정하지 않고 새로운 DataFrame을 반환합니다. 원본 데이터를 직접 변경하고 싶다면 inplace=True 옵션을 사용하세요.

dataFrame.fillna(0, inplace=True)

또한 특정 열에만 적용하고 싶은 경우에는 다음과 같이 작성할 수 있습니다.

dataFrame["Units"] = dataFrame["Units"].fillna(0)