Pandas DataFrame에서 NaN이 있는지 확인하는 방법
NaN
은 Pandas에서 결 측값을 나타내는 Not a Number
를 나타냅니다. Python Pandas에서 NaN
값을 감지하기 위해 DataFrame 객체에 대해 isnull()
및 isna()
메서드를 사용할 수 있습니다.
pandas.DataFrame.isnull()
메소드
pandas.DataFrame.isnull()
메소드를 사용하여 DataFrame에서 NaN 값을 확인할 수 있습니다. 이 메소드는 검사 할 DataFrame
의 해당 요소에 NaN 값이 있으면 요소가 True
인 bool 값의 DataFrame
을 리턴하고 그렇지 않으면 요소가 False
입니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isnull()
print(df_check)
출력:
Student Height Weight
0 False False True
1 False False False
2 False True False
3 False True True
4 False False False
여기서 출력의 False
값은 DataFrame df
의 항목은 NaN
이 아니며 True
값은 DataFrame df
의 NaN
항목을 나타냅니다.
DataFrame에 NaN
값이 있는지 알고 싶다면 DataFrame에 NaN
값이 있으면 True를 반환하는 isnull().values.any()
메서드를 사용할 수 있습니다. DataFrame에 NaN
항목이 하나도 없으면 False입니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().values.any()
print(check_for_nan)
출력:
True
df.isnull().values
는 데이터 프레임의 NumPy 표현을 반환합니다. numpy.any()
는 요소 중 하나라도 True
으로 평가되면 True
을 반환합니다.
따라서 데이터 프레임에 NaN이 있으면df.isnull().values.any()
는 True
입니다.
NaN
이 있는지 확인하는df.isnull().any().any()
df.any()
는 어떤 요소가 True인지를 반환합니다. df
가 데이터 프레임이면pd.Series
를,df
가pd.Series
이면 부울 값을 반환합니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
check_for_nan = df.isnull().any().any()
print(check_for_nan)
출력:
True
위 예제에서isnull()
다음에 두 개의 계단식any()
메소드는 데이터 프레임에서 요소가 NaN
이면True
를 반환합니다.
NaN
이 있는지 확인하기위한isnull().sum().sum()
특정DataFrame
에서NaN
값의 총 개수를 계산하려면df.isnull().sum().sum()
메소드가 올바른 솔루션입니다. 이 메서드는 전체 DataFrame에서 총 NaN
값을 반환합니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
total_nan_values = df.isnull().sum().sum()
print(total_nan_values)
출력:
4
결과가 0보다 크면 데이터 프레임에 NaN
이 존재한다는 의미입니다.
pandas.DataFrame.isna()
메소드
pandas.DataFrame.isna()
방법은
pandas.DataFrame.isnull()
. 두 가지 방법의 작동에는 차이가 없습니다. 이름 만 다릅니다.
import pandas as pd
import numpy as np
df = pd.DataFrame(
{
"Student": ["Hisila", "Shristi", "Zeppy", "Alina", "Jerry"],
"Height": [1.63, 1.5, np.nan, np.nan, 1.4],
"Weight": [np.nan, 56, 73, np.nan, 44],
}
)
df_check = df.isna()
check_for_any_nan = df.isna().values.any()
# Or
check_for_any_nan = df.isna().any().any()
total_nan_values = df.isna().sum().sum()
print(df_check)
print("NaN Presence:" + str(check_for_any_nan))
print("Total Number of NaN values:" + str(total_nan_values))
출력:
Student Height Weight
0 False False True
1 False False False
2 False True False
3 False True True
4 False False False
NaN Presence:True
Total Number of NaN values:4
여기서 df.isna()
메소드는 df에 NaN
값이 있음을 나타내는 부울 값이 들어있는 DataFrame을 반환합니다. 마찬가지로df.isna().values.any()
,df.isna().any().any()
및df.isna().sum().sum()
은 NaN
은 전체df
의 값과df
의NaN
항목 수입니다.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedIn