Python/Python Pandas
Python Pandas : isna (NaN 값 테스트하기, NaN 값 필터링)
CosmosProject
2022. 2. 18. 19:23
728x90
반응형
Pandas의 isna method는 어떤 값이 NaN값인지 아닌지를 체크합니다.
NaN값이라면 True, NaN값이 아니라면 False를 return합니다.
아래 예씨를 보시죠.
import numpy as np
import pandas as pd
print(pd.isna(np.nan))
-- Result
True
isna method가 NaN값을 받으니 True값을 return하는 것을 볼 수 있습니다.
마치 아래 글에 있는 numpy의 isnan과 비슷한 기능을 하죠.
https://cosmosproject.tistory.com/367
한 가지 중요한 차이가 있다면
numpy의 isnan은 parameter로서 어떤 값만을 받을 수 있으나
pandas의 isna는 단순 숫자/글자/nan값 하나 뿐 아니라 Series나 DataFrame도 parameter로서 받을 수 있습니다.
다음 예시를 보시죠.
import pandas as pd
import numpy as np
dict_test = {
'col1': [1, 2, 3, 4, 5],
'col2': ['a', 'b', np.nan, 'd', 'e'],
'col3': [np.nan, 1, 2, 3, 4]
}
df_test = pd.DataFrame(dict_test)
print(df_test)
print(pd.isna(df_test.loc[:, 'col2']))
print(pd.isna(df_test))
-- Result
col1 col2 col3
0 1 a NaN
1 2 b 1.0
2 3 NaN 2.0
3 4 d 3.0
4 5 e 4.0
0 False
1 False
2 True
3 False
4 False
Name: col2, dtype: bool
col1 col2 col3
0 False False True
1 False False False
2 False True False
3 False False False
4 False False False
pandas의 isna method에 Series와 DataFrame을 전달했더니
전달받은 Series나 DataFrame에 존재하는 모든 요소에 대해 NaN값인지 아닌지 체크하여 NaN값의 위치에는 True를 NaN값이 아닌 위치에는 False를 return해주는 것을 볼 수 있습니다.
728x90
반응형