4차 전처리 과정
전처리 과정 명세
실행 코드
print("file_load...")
df = pd.read_csv("AFSNT.CSV", encoding='euc-kr')
#############전처리하기
print("pre-processing...")
#결항 제거
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
print(df.head())Last updated
Was this helpful?