인프런 커뮤니티 질문&답변

vitamin님의 프로필 이미지
vitamin

작성한 질문수

[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)

예시문제 작업형2(신 버전)

예시문제 작업형2(신버전) concat 문의

작성

·

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

퇴근후딴짓님의 프로필 이미지
퇴근후딴짓
지식공유자

concat 시 축을 반드시 설정해 주세요

# Train과 Test 결합 
df = pd.concat([train, test], axis=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)

수정된 코드는 traintest가 DataFrame 객체로 적절히 병합되도록 합니다. 이때 ignore_index=True를 사용하면 인덱스가 새로 지정되어 중복 인덱스에 따른 오류를 방지할 수 있습니다.

이후, pd.get_dummies(df)를 사용하여 원핫 인코딩을 진행하시면 됩니다.

비슷한 문제를 해결한 다른 유사한 경우도 있으니 아래 게시물을 참고해 보시길 추천합니다:

  • 오류 - KeyError 관련: 해당 게시물은 데이터 병합 과정에서 자주 발생하는 오류와 그 해결 방법을 다루고 있습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

vitamin님의 프로필 이미지
vitamin

작성한 질문수

질문하기