3차 전처리 과정
전처리 과정 명세
이때까지의 과정과 대표적인 차이점은 다음과 같다.
계획 실제 시간차이가 -180분 이하일 경우 제외
학습 데이터에서 분 단위 정보를 제거
기존의 출발과 도착 데이터셋으로 나눴던 것을 다시 병합
시간 데이터 그룹화
실행 코드
df = df.loc[df['CNL'] == 'N']
#등록 기호 제거
df = df[df['REG'].notnull()]
#부정기편 제거하기
df = df[ df['IRR'] == "N" ]
# 시/분 단위로 나누기
STT_Hour = []
STT_Minute = []
ATT_Hour = []
ATT_Minute = []
STT = df['STT']
ATT = df['ATT']
sub = STT.str.split(':', expand = True)
STT_Hour = sub.iloc[0:, 0]
STT_Minute = sub.iloc[0:, 1]
sub2 = ATT.str.split(':', expand = True)
ATT_Hour = sub2.iloc[0:, 0]
ATT_Minute = sub2.iloc[0:, 1]
df['STT_H'] = STT_Hour.astype(int)
df['STT_M'] = STT_Minute.astype(int)
df['ATT_H'] = ATT_Hour.astype(int)
df['ATT_M'] = ATT_Minute.astype(int)
df_STT_Time = df['STT_H'] * 60 + df['STT_M']
df_ATT_Time = df['ATT_H'] * 60 + df['ATT_M']
df_H3 = df_ATT_Time - df_STT_Time
# H3값이 음수면 빨리 출발, 양수면 늦은 출발(지연가능)
df['Time'] = df_H3
df = df.loc[(df['Time'] >= -180) | (df['DLY'] != 'Y') | (df['ATT_H'] < 0) | (df['ATT_H'] > 3) | (df['STT_H'] < 22)]
df = df.loc[(df['STT_H'] != 0) & (df['STT_H'] != 1) & (df['STT_H'] != 23)]
df['STT_H'].loc[(df['STT_H'] == 6)] = 0
df['STT_H'].loc[(df['STT_H'] >= 7) & (df['STT_H'] <= 12)] = 1
df['STT_H'].loc[(df['STT_H'] >= 13) & (df['STT_H'] <= 19)] = 2
df['STT_H'].loc[(df['STT_H'] == 20)] = 3
df['STT_H'].loc[(df['STT_H'] == 21) | (df['STT_H'] == 22)] = 4
Last updated