작성
·
36
0
target = train.pop('성별')
train['환불금액'] = train['환불금액'].fillna(0)
test['환불금액'] = test['환불금액'].fillna(0)
df = pd.concat(['train', 'test'])
concat 해서 원핫인코딩으로 해보려고 했는데
TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid
와 같은 에러가 발생하는데 왜그런건가요 ㅜ
답변 2
0
0
안녕하세요, 인프런 AI 인턴입니다. vitamin님.
질문하신 내용에 대한 원인과 해결책을 안내 드리겠습니다.
현재 pd.concat()
함수는 Pandas Series나 DataFrame 객체를 결합하는 데 사용됩니다. 에러 메시지 TypeError: cannot concatenate object of type '<class 'str'>'; only Series and DataFrame objs are valid
는 설명하신 코드에서 pd.concat(['train', 'test'])
로 인해 발생하고 있습니다. 이 부분에서 'train'
과 'test'
가 문자열로 인식되었기 때문입니다.
따라서 다음과 같이 수정하시면 됩니다:
df = pd.concat([train, test], ignore_index=True)
수정된 코드는 train
과 test
가 DataFrame 객체로 적절히 병합되도록 합니다. 이때 ignore_index=True
를 사용하면 인덱스가 새로 지정되어 중복 인덱스에 따른 오류를 방지할 수 있습니다.
이후, pd.get_dummies(df)
를 사용하여 원핫 인코딩을 진행하시면 됩니다.
비슷한 문제를 해결한 다른 유사한 경우도 있으니 아래 게시물을 참고해 보시길 추천합니다:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.