'[]'결측치 제거하기

Yelim Kim·2021년 12월 13일
0

Kaggle

목록 보기
24/29

TensorFlow - Help Protect the Great Barrier Reef대회 문제를 풀다가 train을 찍어보니 아래처럼 0번부터 15번까지는 결측치가 있다는 걸 확인했다. 이를 지워주고자 한다.

train = train[train['annotations'].str.len()>0].reset_index(drop = True)

위 코드를 확인해보자.
우선 train안에서 string의 길이가 0 이상인 애들만 annotations에 남기려고 한다.
뒤에 reset_index(drop = True)는 인덱스를 처음부터 재배열 해주는 함수다. drop = True옵션을 주게 되면 기존 인덱스를 버리고 재배열해준다.
더 자세한 인덱스 활용을 참고하자.

이렇게 했더니 결측치가 사라지지 않는다.
결측치 안의 값에 문제가 있는 것 같았다.

train['annotations'][0]를 찍어서 확인해봤다.

이런 결과가 나온다. 대괄호 좌우에 `가 붙어있어서 문자형으로 출력되기 때문에 문제가 생겼던 모양이다.

.apply(eval)로 리스트로 변환해주자.

train['annotations'] = train['annotations'].apply(eval)

다시 train['annotations'][0]를 찍어서 확인해보자.

이제 train을 다시 찍어보면 결측치가 제거되었다.

profile
뜬금없지만 세계여행이 꿈입니다.

0개의 댓글