3차 전처리 과정

전처리 과정 명세

이때까지의 과정과 대표적인 차이점은 다음과 같다.

  1. 계획 실제 시간차이가 -180분 이하일 경우 제외

  2. 학습 데이터에서 분 단위 정보를 제거

  3. 기존의 출발과 도착 데이터셋으로 나눴던 것을 다시 병합

  4. 시간 데이터 그룹화

실행 코드

    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