Pandas DataFrame에 포함된 NaN(결측값)을 0으로 일괄 변경하려면 fillna() 메서드를 사용하면 됩니다. 이 메서드는 DataFrame 내의 모든 결측값을 지정한 값으로 손쉽게 채워 줍니다.
예를 들어, 아래는 Microsoft Excel로 연 CSV 파일의 모습으로, 일부 셀에 NaN 값이 존재합니다.

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)