"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."


[Pandas] 데이터 프레임 결측치(NaN) 행 추출
728x90

 

DataFrame에 결측치(NaN)가 들어 있는 라인을 추출하고 싶은 경우 어떻게 해야할 지 알아보겠습니다.

 

데이터 프레임 결측치 확인 방법

우선 다음과 같이 결측치가 들어 있는 데이터 프레임을 만들어서 설명하겠습니다.

import numpy as np
import pandas as pd

raw_data = {'first_name': ['Jason', np.nan, 'Tina', 'Jake', 'Amy'], 
                   'last_name': ['Miller', np.nan, 'Ali', 'Milner', 'Cooze'], 
                   'age': [42, np.nan, 36, 24, 73],
                   'sex': ['m', np.nan, 'f', 'm', 'f'],
                   'preTestScore': [4, np.nan, np.nan, 2, 3],
                   'postTestScore': [25, np.nan, np.nan, 62, 70]}

df2 = pd.DataFrame(raw_data, columns = ['first_name', 'last_name', 'age', 'sex', 'preTestScore', 'postTestScore'])

 

데이터 프레임에 결측치가 있는지 확인하기 위해서는 isna() 함수를 사용합니다.

df2.isna()

isna() 함수를 이용하연 해당 데이터 프레임에 결측치 여부를 T/F 값으로 리턴합니다.

 

컬렴별로도 결측치 여부를 알 수 있습니다.

df2['postTestScore'].isna()

 

sum() 함수를 붙여주면 각 컬럼별로 결측차가 몇 개가 있는도 확인할 수 있습니다.

df2.isna().sum()

 

반응형

 

데이터 프레임 결측치 행만 추출하기

결측치(NaN)가 있는 행만 가져오기 위해서는 isna() 함수를 이용하여 데이터 프레임을 슬라이싱 하면 됩니다.

df2[df2['postTestScore'].isna()]

isna() 함수로 postTestScore 컬럼을 슬라이싱을 해주면 postTestScore 컬럼에서 결측치인 행만 가져올 수 있습니다.

 

이상 데이터 프레임에서 결측치(NaN)가 있는 행만 추출하는 방법을 알아보았습니다.

 

728x90
728x90
LIST