Dev/python
[pandas] 데이터프레임에서 NaN을 None으로 치환하기, replace(), np.nan 활용
bskyvision.com
2023. 9. 24. 15:50
오늘은 파이썬 판다스 데이터프레임에서 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