파이썬(Python)&판다스(Pandas)&Polars

[Pandas] '', NaN 값을 None으로 변환하기

송채채 2022. 10. 24. 15:28

데이터 전처리를 위해서, 조건절에서 None을 기준으로 데이터를 판단하는 경우가 많다.

하지만, Pandas로 데이터프레임을 불러오는 과정에서 Null 값의 처리가 제대로 되지않으면 원하는 결과를 낼 수 없다.

보통 np.NaN 또는 None을 기준으로 null 값 처리하기 때문에 이 글은 None값 처리를 하는 코드의 예시이다.

 

import pandas as pd
import numpy as np

# 데이터 불러오기
path = r'파일경로'

df = pd.read_csv(path,keep_default_na=False, # 빈 값은 None값으로 불러오기
	na_values = ['?', '??', 'N/A', 'NA', 'nan', 'NaN', '-nan', '-NaN', 'null','None', ' ',""], #최대한 다양한 값을 null 값으로 인식해 전처리를 줄이기
    	dtype={'컬럼명':str}) # 문자열로 인식해야하는 컬럼은 dtype을 지정해주세요.

# None 처리
df = df.replace('', np.nan) #빈 문자열을 NaN로 변환
df = df.replace({np.nan: None}) #NaN을 None으로 변환

 

활용하기 isnull, notnull

# 셀의 값이 None인 것만 출력
df[df['컬럼명'].isnull()]
# 셀의 값이 None이 아닌 것만 출력
df[df['컬럼명'].notnull()]

 

참고 블로그

- pd.read_csv 시 NaN 값 None으로 바꾸기

- Python-numpy-NaN을-None으로-변환하기

- [Pandas] read_csv에서는 꼭 dtype을 정의하자

 

반응형