분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
월간 데이콘 항공편 지연 예측 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'가 같은 경우가 존재하는데 최빈 값으로 결측치를 처리하려면 왜 안들어가지는지 궁금해서 이렇게 글 남깁니다.
DACON Co.,Ltd | CEO Kookjin Kim | 699-81-01021
Mail-order-sales Registration Number: 2021-서울영등포-1704
Business Providing Employment Information Number: J1204020250004
#901, Eunhaeng-ro 3, Yeongdeungpo-gu, Seoul 07237
E-mail dacon@dacon.io |
Tel. 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved