해결된 질문
작성
·
257
·
수정됨
0
# 피처 엔지니어링 - date에 쫌 안맞아서 해보겠음
cols1 = list(X_train.columns[X_train.dtypes == object]) # 범주형
cols2 = list(X_train.columns[X_train.dtypes != object]) # 수치형
# 수치형 변수의 스케일링 - 값이 안맞는 것은 범주형 데이터에서만 나타나기 때문에 데이터를 나누기전 수치형 데이터부터 먼저 처리해준다.
from sklearn.preprocessing import RobustScaler
Ro = RobustScaler()
X_train[cols2] = Ro.fit_transform(X_train[cols2])
X_test[cols2] = Ro.transform(X_test[cols2])
# X_train행의 길이 알아두기
a = len(X_train) #17290
# 범주형 변수의 더미 인코딩
combined = pd.concat([X_train, X_test]) # 훈련 데이터와 테스트 데이터 합치기(위아래로)
combined = pd.get_dummies(combined[cols1])
# 다시 훈련 데이터와 테스트 데이터로 분리
X_train = combined.iloc[:a]
X_test = combined.iloc[a:]
답변 1
0
네!! 깔끔하게 코딩했네요 💪💪💪
cols1, cols2에서 빼야하는 것이 있다면 print()로 출력해 직접리스트를 만드는 방법도 있습니다.
cols1 = ['컬럼명']