머신러닝 학습을 하기 전 데이터 전처리를 할 때, 데이터프레임 상에서 Null 값이 있는 행이 있는지 확인하고, 또 존재한다면 삭제하고 싶을 때, 코드를 어떻게 작성해야 하는지 아래 코드를 보면서 살펴보도록 하겠습니다.
1. Null 값 확인하기
먼저, 다음과 같이 Null 값이 있는 데이터프레임이 있다고 가정해보겠습니다.
#<df>
item price count
0 water 1000.0 1.0
1 milk 2000.0 NaN
2 coffee 3000.0 2.0
3 ade NaN 1.0
4 latte 5000.0 3.0
5 tea 6000.0 2.0
위 데이터프레임을 보면 각각 1행과 3행에 NaN 으로 Null 값이 있는 것을 확인할 수 있는데요, 이 데이터프레임의 데이터는 매우 작아서 어디에 Null 값이 있는지 바로 알 수 있지만, 데이터가 매우 많으면 Null 값이 있는지, 어디에 있는지 알 수 없습니다. 따라서 어디에 있는지 개수를 알려면 아래아 같이 코드를 작성하면 됩니다.
print(df.isnull().sum())
# output :
item 0
price 1
count 1
dtype: int64
isnull().sum() 함수를 이용하면 각 칼럼마다 몇 개의 Null 값이 있는지 확인할 수 있습니다.
위 결과를 토대로, 만약 'price' 라는 칼럼에서 어디에 Null 값이 있는지 확인하려면 다음과 같이 입력해줌으로써 어느 행에 Null 값이 있는지 확인할 수 있습니다.
df.loc[df.price.isnull()]
# output :
item price count
3 ade NaN 1.0
확인 결과, 3행에 있는 것을 확인할 수 있습니다.
2. Null 값 삭제하기
Null 값이 있다는 것을 찾았다면, 이를 삭제해야 하는데요, 다음과 같이 dropna() 함수를 이용하여 Null 값이 있는 행을 제거할 수 있습니다.
new_df = df.dropna(how = 'any')
display(new_df)
#output :
item price count
0 water 1000.0 1.0
2 coffee 3000.0 2.0
4 latte 5000.0 3.0
5 tea 6000.0 2.0
제거하고 데이터프레임을 출력한 결과, Null 값이 삭제된 것을 확인할 수 있습니다.
이제 이 데이터를 가지고 학습에 사용하면 된답니다.
'BLOG > 머신러닝' 카테고리의 다른 글
[머신러닝] [single / multi / shallow / deep] neural network 명칭 정리 (0) | 2021.03.23 |
---|---|
[머신러닝] 지도학습과 비지도학습의 차이 및 알고리즘 종류 (0) | 2021.03.23 |
[자연어처리] Okt : 형태소 단위로 나누는 방법 (파이썬) (0) | 2021.03.23 |
[자연어처리] 파이썬으로 원 핫 인코딩(One-Hot Encoding) 구현하기 (코드) (0) | 2021.03.23 |
[자연어처리] 패딩(Padding) : 다른 숫자로 패딩하는 방법 (파이썬) (0) | 2021.03.23 |