작성
·
21
답변 1
0
안녕하십니까,
아래 get_train_test_dataset() 함수로 card_df가 입력됩니다.
X_train, X_test, y_train, y_test = get_train_test_dataset(card_df)
그리고 get_train_test_dataset()은 인자로 card_df를 입력 받아서, 이를 다시 get_preprocessed_df()에 인자로 입력합니다.
def get_train_test_dataset(df=None):
# 인자로 입력된 card_df DataFrame의 사전 데이터 가공이 완료된 복사 DataFrame 반환
df_copy = get_preprocessed_df(df)
...........
그리고, get_preprocessed_df() 는 인자로 card_df를 받지만 이를 건들지 않고, df.copy()로 새로운 DataFrame을 생성하고, 이 DataFrame에 Scaler, 컬럼명 변경, 피처 삭제 작업하고 이를 반환합니다.
def get_preprocessed_df(df=None):
df_copy = df.copy()
scaler = StandardScaler()
amount_n = scaler.fit_transform(df_copy['Amount'].values.reshape(-1, 1))
# 변환된 Amount를 Amount_Scaled로 피처명 변경후 DataFrame맨 앞 컬럼으로 입력
df_copy.insert(0, 'Amount_Scaled', amount_n)
# 기존 Time, Amount 피처 삭제
df_copy.drop(['Time','Amount'], axis=1, inplace=True)
return df_copy
get_preprocessed_df(card_df)가 반환하는 DataFrame은 정확히는 card_df가 아닙니다. card_df는 변경이 없고, card_df를 copy()한 DataFrame에 데이터 가공작업을 수행한 뒤 반환하게 됩니다.
혹시 답변에 부족한 부분이 있으시면 다시 글 부탁드립니다 ^^
감사합니다.