해결된 질문
작성
·
353
·
수정됨
1
안녕하십니까 강사님, 양질의 강의로 이해하기 쉽게 준비해주셔서 감사합니다.
실은 섹션 11, 예시문제 작업형 2, 16:57 쯤에 복습 중
for 문을 이용하여 조금 코드를 수정해보았습니다.
아래의 코드가 바로 정상 작동하는 일부 수정한 코드입니다.
from sklearn.preprocessing import MinMaxScaler
cols = ['총구매액', '최대구매액', '환불금액', '내점일수', '내점당구매건수', '주말방문비율', '구매주기']
for col in cols:
scaler = MinMaxScaler()
X_train[col] = scaler.fit_transform(X_train[[col]])
X_test[col] = scaler.transform(X_test[[col]])
X_train.head()
근데 바로 위의 `LabelEncoder`을 수행한 코드를 보면 for 문과 함께 [col]로 작성이 되어있는데, 이 일부 수정된 코드에서는 [col]을 적으면 왜 이 오류가 나오는지 잘 모르겠습니다.
ValueError: Expected 2D array, got 1D array instead:
[[col]] 를 작성해야만 정상 작동하더군요. 혹시 LabelEncoder를 적용한 바로 위의 코드와 어떤 차이가 있어서 []을 한번 더 기입해야 하나요?.
답변 3
2
코드를 수정해보셨다니 매우 좋은 학습 태도를 보이고 계시네요. 질문하신 부분에 대해 설명 드리면MinMaxScaler
는 기본적으로 2차원 배열을 입력으로 받습니다. 입력이 데이터 프레임이어야 합니다. 따라서 데이터 프레임으로 변경하기 가장 쉬운 방법이 대괄호 2개를 사용하는 것이에요~
LabelEncoder
는 1차원 배열을 입력으로 받습니다. 입력이 시리즈 형태면 됩니다. 대괄호 1개를 사용하는 것이에요!!
1
예시문제 작업형2 영상 오늘 밤에 업데잇할 예정이에요!
내일 이후 재시청 부탁드리겠습니다 🙂