데이터분석을 하기 전 데이터 전처리를 할 때, 결측값(NaN)이 있는 항목은 다른 값을 넣어주던가 해당 행을 삭제하는 것이 좋은데요, 만약, 결측값이 들어있는 행 전체를 삭제하고 싶다면 dropna() 함수를 사용하면 됩니다.
1. dropna() : 결측값이 들어있는 행 삭제하기
pandas 라이브러리에서는 결측값이 들어있는 행을 삭제하는 함수를 제공하는데요, 바로 dropna() 함수입니다.
먼저, 다음과 같은 데이터프레임이 있다고 가정해보겠습니다.
display(df)
item count price rating
0 coffee 1.0 3000 4.5
1 juice 5.0 4000 3.0
2 ade 2.0 5000 NaN
3 milk 4.0 2000 2.5
4 tea 3.0 4000 3.0
5 water NaN 1000 4.5
6 coke 4.0 2000 4.0
위 데이터프레임(df)을 보면, 2번째 행에 'rating' 칼럼에 결측값이 있고, 5행에 'count' 칼럼에 결측값이 있는 것을 확인할 수 있습니다. 이제 이 행들을 dropna() 함수로 삭제해보도록 하겠습니다.
row_df = df.dropna(axis=0)
display(row_df)
item count price rating
0 coffee 1.0 3000 4.5
1 juice 5.0 4000 3.0
3 milk 4.0 2000 2.5
4 tea 3.0 4000 3.0
6 coke 4.0 2000 4.0
삭제한 결과, 결측값이 있던 행들이 모두 삭제되었음을 확인할 수 있습니다.
2. dropna() : 결측값이 들어있는 열 삭제하기
dropna() 함수로 행 뿐만 아니라 결측값이 들어있는 열을 삭제할 수 있답니다. 위 코드에서 dropna() 함수 안에 'axis=0' 은 행을 의미하는데요, 이를 'axis=1'로 수정하면 결측값이 있는 열을 삭제하게 됩니다. 똑같이 코드를 입력해서 실행해보겠습니다. 예상대로라면 결측값이 있는 'count' 열과 'rating' 열이 삭제되어야 합니다.
row_df = df.dropna(axis=1)
display(row_df)
item price
0 coffee 3000
1 juice 4000
2 ade 5000
3 milk 2000
4 tea 4000
5 water 1000
6 coke 2000
실행 결과, 'count' 열과 'rating' 열이 잘 삭제되었음을 확인할 수 있습니다.
'BLOG > 데이터분석' 카테고리의 다른 글
[데이터분석] 데이터 프레임 : 원하는 행 인덱싱 하기 - iloc (0) | 2021.03.11 |
---|---|
[데이터분석] 데이터 프레임 : 두 개의 칼럼(열) 합치기 (문자열 데이터) - map() (0) | 2021.03.11 |
[데이터분석] 엑셀 파일, 원하는 칼럼(열) 선택적으로 불러와서 dataframe으로 나타내기 - usecols (0) | 2021.03.10 |
[데이터분석] 엑셀 파일, 원하는 행 선택적으로 불러와서 dataframe으로 나타내기 - skiprows (0) | 2021.03.10 |
[데이터분석] 엑셀 파일, 마지막 행 제외하고 데이터 프레임으로 불러오기 - skipfooter (0) | 2021.03.10 |