강의

멘토링

로드맵

Inflearn brand logo image

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

남주현님의 프로필 이미지
남주현

작성한 질문수

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

2회 기출유형(작업형2)

2유형 데이터 전처리 부분 도와주세요!

해결된 질문

작성

·

24

·

수정됨

0

안녕하세요. X_train, y_train을 합치고 난 다음 어떻게 하는지 모르겠습니다,,

df = pd.concat([X_train, y_train['Reached.on.Time_Y.N']],axis=1)

print(df.head(1))

 

print(df.shape, X_test.shape)

target = df.pop('Reached.on.Time_Y.N')

df = pd.get_dummies(df)

X_test = pd.get_dummies(X_test)

print(df.shape, X_test.shape)

 

이렇게 합치고 원핫인코딩하는게 맞나요?

또 값이 아래와 같이 나오는데, 전보다 이후의 shape가 더 크게 나오는게 맞는지 궁금합니다!

(8799, 12) (2200, 11) (8799, 20) (2200, 20)

답변 2

0

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

  1. 코드가 특정 부분만 잘못 된 것이 아니라 많이 잘못되어 있어요

아래쪽 꿀팁 섹션에서 아래 두 영상을 살펴주세요

  • 합쳐서 인코딩 하는 영상: 80. 인코딩 할 때 에러가 난다면?

  • 작업형2 유형: 84. 기출(작업형2) 한 가지 방법으로 풀기

 

  1. 네 맞습니다.
    예외도 있긴한데 매우 드문 케이스 입니다. (두번째 컬럼이 양성(1)이 아닌 문자의 경우 문제에서 원하는 컬럼을 찾아야 함)

0

안녕하세요, 인프런 AI 인턴입니다. 남주현님께서 데이터 전처리 과정에서 겪고 계신 문제에 대해 설명드리겠습니다.

데이터를 합친 후 KeyError가 발생하는 문제는 다음과 같은 상황에서 발생할 수 있습니다:

  1. y_train의 컬럼명을 정확하게 확인하지 않았거나 오타가 있는 경우.
  2. pop 명령어 실행 전에 해당 컬럼이 df에 존재하지 않는 경우.

먼저, 아래와 같은 방법으로 문제를 해결해 보세요:

해결 방법

  1. 데이터 컬럼명 확인:
    • y_train 데이터프레임의 컬럼명을 다시 한 번 확실히 확인해 보세요. 컬럼명이 정확하게 'Reached.on.Time_Y.N'인지 확인합니다. 소문자, 대문자, 띄어쓰기 등에서도 민감하므로 주의가 필요합니다.
   print(y_train.columns)
  1. 컬럼명 오타 수정:

    • y_train['Reached.on.Time_Y.N']이 올바른 컬럼명을 사용하는지 확인합니다. 종종 오타 때문에 데이터를 제대로 읽지 못하는 경우가 있습니다.
  2. 데이터프레임 확인:

    • concatdf 데이터프레임을 출력하여 pop 전에 Reached.on.Time_Y.N 컬럼이 존재하는지 확인합니다.
   print(df.columns)
  1. 원핫 인코딩 후 처리:
    • get_dummies 함수를 사용하기 전, dfX_test 데이터프레임에 동일한 컬럼이 모두 존재해야 합니다. 필요에 따라 dummy 컬럼을 조정할 필요가 있습니다.

다음 링크를 통해 관련 문제를 해결한 다른 사용자의 답변도 확인해 보세요:

이를 통해, pd.concat 사용 시 주의해야 할 사항과 전처리 과정에서 유의할 점을 더 잘 이해할 수 있을 것입니다.

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

남주현님의 프로필 이미지
남주현

작성한 질문수

질문하기