데이터 분석을 하다보면 컬럼내의 결측값을 제거 하기 위해 isna() 혹은 info()를 통해 확인을 하게된다. 하지만, 결측값을 채워도 이상한 값이 남아 있는경우가 있다 가령 공백, tab으로 띄어진 칸, "-" 와 같은 것들로 말이다.
이러한 값때문에 몇일을 날리기도 하고 이러한 값들을 인지하지 못한채 분석을 완료하기도 한다.
그래서, 이러한 값을 try~except구문을 통해 찾아 내는 방법을 공유하고자 한다.
나의 경우를 예시로 설명하고자 한다.
우선 데이콘의 주차수요 대회를 참여하면서 생각해낸 방법이다.
컬럼중에 "임대보증금" 이라는 숫자로된 값으로 보증금 금액이 찍힌 컬럼이 있었다.
해당 컬럼에서 결측값은 모두 제거했지만 무엇인가 이상해서 확인해 보았더니 '-'라는 값이 일부 들어가있는것을 알게되었다.
# 임대보증금 에러값 찾기
for data in train['임대보증금']:
try:
float(data)
pass
except:
print(data)
pass
위와 같이 for문을 돌려 컬럼값을 하나하나 읽어오고 try~except구문을 통해서 이미 결측값을 채웠기 때문에 float로 변환이 되지않는 것을 print하는 식으로 만들어 주었다.
결과는 다음과 같이 나왔다.
-
-
-
-
-
-
-
-
-
-
-
-
이제는 결측값을 채우고도 습관적으로 이상값(error)이 있는지 긁어보는것이 익숙해졌다.