오늘은 파이썬 판다스 데이터프레임에서 NaN을 None으로 치환하는 방법에 대해 살펴보겠습니다.
우선 NaN은 Not a Number의 약자입니다. NaN의 타입은 float입니다.
반면 None은 존재하지 않음을 나타내며 타입은 None입니다.
import numpy as np
print(type(np.nan)) # <class 'float'>
print(type(None)) # <class 'NoneType'>
파이썬에서 NaN은 보통 numpy.nan을 많이 사용합니다.
자, 그러면 이제 데이터프레임 내에 있는 NaN을 None으로 치환하는 방법에 대해 살펴보도록 하겠습니다.
데이터프레임 내 Nan -> None으로 치환하기
데이터프레임에서 어떤 값을 다른 값으로 치환할 때는 보통 replace() 메서드를 많이 사용합니다.
import pandas as pd
import numpy as np
print(type(np.nan)) # <class 'float'>
print(type(None)) # <class 'NoneType'>
df1 = pd.DataFrame(
[[90, 85, 80], [77, np.nan, 79], [86, 89, np.nan]],
columns=["수학", "영어", "과학"],
index=["영수", "철수", "광수"])
print(df1)
# 수학 영어 과학
# 영수 90 85.0 80.0
# 철수 77 NaN 79.0
# 광수 86 89.0 NaN
df2 = df1.replace({np.nan: None})
print(df2)
# 수학 영어 과학
# 영수 90 85.0 80.0
# 철수 77 None 79.0
# 광수 86 89.0 None
NaN이 None으로 잘 변환된 것을 확인할 수 있습니다.
관련 글
- [pandas] 누락된 데이터가 - 등의 기호로 표현되어 있을 때 NaN으로 변경하는 방법, replace() 메소드
참고자료
[2] https://potato-potahto.tistory.com/entry/PythonNaNNone-%EC%B0%A8%EC%9D%B4feat-PandasNA
'Dev > python' 카테고리의 다른 글
[python] 2023년 12월 13일부터 boto3는 파이썬 3.7버전을 지원하지 않습니다 (0) | 2023.09.30 |
---|---|
[python] 한줄로 if, else문 만들기 (삼항연산자) (0) | 2023.09.28 |
[python] 타입 체크시에는 type() 대신에 isinstance()를 활용하라 (0) | 2023.09.27 |
[python] redis.Redis()와 redis.StrictRedis()의 차이는? (0) | 2023.09.26 |
[sqlalchemy] one(), one_or_none(), first() 메서드 차이 비교 (0) | 2023.09.23 |
[FastAPI] uvicorn의 workers 설정 의미 (0) | 2023.09.08 |
[sqlalchemy] pool_size, max_overflow 이해 (0) | 2023.09.07 |
[pandas] 데이터프레임 딕셔너리로 변환하기, df.to_dict('records') (0) | 2023.09.07 |