분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
월간 데이콘 항공편 지연 예측 AI 경진대회
결측치 처리 코드 에러
안녕하세요 다름이 아니라 데이터 결측치를 처리하기 위해서 다음과 같은 코드를 작성했습니다.
## 'Airline', 'Carrier_Code(IATA)'가 같은면 Carrier_ID(DOT)가 같은지 확인
check = tmp_train.groupby(['Airline', 'Carrier_Code(IATA)'])['Carrier_ID(DOT)'].nunique().reset_index(name='count')
check = check[check['count'] > 1]
check
## 'Airline', 'Carrier_Code(IATA)' 같은면 Carrier_ID(DOT)가 같기 때문에 같은 경우에 채워줌
tmp_train['Carrier_ID(DOT)'] = tmp_train.groupby(['Airline', 'Carrier_Code(IATA)'])['Carrier_ID(DOT)'].transform(lambda x: x.fillna(x.mode()))
위의 경우에는 결측치가 대체 되어서 잘 처리가 되는데
## 'Airline', 'Tail_Number' 가 같은면 Carrier_ID(DOT)가 같은지 확인
check = tmp_train.groupby(['Tail_Number','Airline'])['Carrier_ID(DOT)'].nunique().reset_index(name='count')
check = check[check['count'] > 1]
check
tmp_train['Carrier_ID(DOT)'] = tmp_train.groupby(['Airline', 'Tail_Number'])['Carrier_ID(DOT)'].transform(lambda x: x.fillna(x.mode()[0]))
같은 코드로 컬럼만 바꿔서 진행하면 key error 0이라고 뜨더군요. 하지만 'Airline', 'Tail_Number'가 같은 경우가 존재하는데 최빈 값으로 결측치를 처리하려면 왜 안들어가지는지 궁금해서 이렇게 글 남깁니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved