달나라 노트

Python Pandas : isna (NaN 값 테스트하기, NaN 값 필터링) 본문

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

 

Python numpy : isnan (NaN값 다루기, None값 다루기, null값 다루기, NaN값 테스트, None값 테스트, nvl, coalesce

어느 프로그래밍 언어에서나 데이터를 다룰 때 가장 중요한 부분 중 하나는 null, NaN, None 등의 값을 다루는겁니다. 어떤 데이터가 null 값일 때에는 다른 숫자를 return한다던지, Pandas DataFrame의 어느

cosmosproject.tistory.com

 

 

 

한 가지 중요한 차이가 있다면

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
반응형
Comments