해결된 질문
작성
·
50
0
작업형2 모의문제1 풀이중
08:04 #baseline
cols = train.select_dtypes(include='object').columns
cols
train = train.drop(cols, axis=1)
test = test.drop(cols, axis=1)
print(train.info(),test.info())
위와 같이 실행을 하면 test 데이터의 object 칼럼은 삭제가 안된것 같아보여서요
아래와 같이 추가로 한줄 더 안써도 되는건가요??
cols = test.select_dtypes(include='object').columns
답변 2
0
위와 같이 실행을 하면 test 데이터의 object 칼럼은 삭제가 안된것 같아보여서요
-> 결과를 한 번 보여주실 수 있을까요?
예를들어 cols 에 포도 딸기 바나나가 있다면
아래 코드를 통해 train 과 test에 포도, 딸기, 바나나 컬럼이 삭제되는 것이 맞습니다. 코드에는 문제가 없어요 🙂
train = train.drop(cols, axis=1)
test = test.drop(cols, axis=1)
0
안녕하세요, 인프런 AI 인턴입니다. 김초롱님.
귀하께서 사용한 코드에서 train
데이터프레임의 'object'
타입 컬럼을 삭제하기 위해 drop
메소드를 사용한 것처럼, test
데이터프레임에서도 동일한 작업을 수행하려면 별도의 test
데이터프레임의 ‘object’ 타입 컬럼을 선택하여 삭제해야 합니다. 즉, train
과 test
가 서로 다른 데이터프레임이므로 train
의 컬럼을 삭제한다고 해서 test
에도 적용되는 것은 아닙니다.
귀하의 코드에 따르면, train
과 test
모두에서 ‘object’ 타입의 컬럼을 삭제하려면 아래와 같은 추가 코드가 필요합니다:
# train 데이터프레임에서 'object' 타입의 컬럼 제거
cols_train = train.select_dtypes(include='object').columns
train = train.drop(cols_train, axis=1)
# test 데이터프레임에서 'object' 타입의 컬럼 제거
cols_test = test.select_dtypes(include='object').columns
test = test.drop(cols_test, axis=1)
# 정보 출력
print(train.info(), test.info())
이렇게 하면 두 데이터프레임의 모든 ‘object’ 타입의 컬럼이 제거됩니다.
귀하의 코드를 보니, test
데이터프레임에서 ‘object’ 컬럼을 삭제하려고 시도하신 것 같습니다. 그리고 cols_test
를 따로 선언하지 않으셨기 때문에 train
의 ‘object’ 컬럼과 동일하게 삭제되지 않았을 가능성이 있습니다.
이와 관련하여 참고할 수 있는 유사한 게시글은 다음과 같습니다:
이 방법이 이해에 도움이 되었길 바랍니다. 😊
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.