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

9999님의 프로필 이미지

작성한 질문수

처음하는 파이썬 데이터 분석 (쉽게! 전처리, pandas, 시각화 전과정 익히기) [데이터분석/과학 Part2]

데이터프레임간 연결/병합해서 데이터 가공하기2

데이터프레임간 연결/병합해서 데이터가공하기 2, 5:02 구간 outer merge 관련 질문드립니다.

작성

·

389

0

안녕하세요, 강사님

제공해 주신 수업자료, 다른 수강생 분께서 남기신 질문, 구글까지 모두 찾아보았는데 뾰족한 답변이 나오지 않아 문의드립니다.

가장 마지막의 데이터프레임 조작하기 연습_인덱스 기준으로 합쳐서 outer_join 시, 강의에서 보여주신 내용과 다른 표가 결과로 나옵니다.

강의 화면 캡쳐본)

스크린샷 2022-11-11 오후 3.28.54.png

혼자 풀어본 화면)

스크린샷 2022-11-11 오후 3.29.54.png

처음에 아래 코드처럼
pd.merge(df1, df2, how='outer', left_index=True, right_index=True)로 혼자 풀어보았는데 계속 아래처럼 concat axis 했던 것처럼 옆으로 합쳐지기만 하는 표가 나오더라고요 ㅠㅠ

그래서 뭔가 잘못했나 싶어서 강의자료 코드도 계속 검색해보고 구글링도 해봤는데 뾰족한 답이 나오지 않아 문의드립니다.. 위의 merge(df1, df2, on='id', how='outer'코드는 혹시 df를 선언할 때 오류가 없었는지 확인해보려고 혼자 해봤던 코드입니다. 결과물을 보면 df 선언 자체엔 문제가 없는 것 같은데 뭐가 문제인지 함께 확인해 주실 수 있으실까요?

감사합니다.

답변 2

1

안녕하세요. 답변도우미입니다.

우선 상세하게 이슈를 설명해주셔서 감사합니다. 파악하는데 매우 큰 도움이 되었습니다.

말씀하신 부분은 우선 영상 그대로 동작하는 것이 맞습니다. 그런데, 영상과 자료에서는 최초에 만든 df1, df2 데이터프레임을 기반으로 merge 명령을 쓰도록 한 것인데요. 이 때 만들어진 df1 과 df2 가 해당 자료에서도 보시다시피 set_index() 로 'id' 를 인덱스로 만든 다음에, 이를 기반으로 left_inde,x right_index 를 쓴 것인데요. 저희가 혹시 해당 데이터프레임을 각 문제를 푸실때, 놓칠까봐 각 문제별로 다시 df1, df2 데이터프레임을 만드는 코드를 각 문제마다 넣었는데요. 각 문제마다 넣을 때에는 set_index() 로 'id' 를 인덱스로 셋하는 코드를 놓쳤어요. 그래서, 말씀하신대로 코드 실행 결과가 달라보이는 것이었습니다. 그래서, 이 부분을 수업자료에 새로 코드를 업데이트하여, set_index() 를 추가하였고, 이를 통해 다음과 같이 영상과 동일하게 나오는 것을 확인하였습니다. 혼란이 되셨던 부분 죄송합니다.

영상 설명 자체에 문제가 있는 부분은 아니라서, 자료를 새로 다운받아서, 한번 테스트해보시면 도움이 되실 것 같습니다. 혹시 이 부분에서 저희가 놓친 부분이 있다면, 괜찮으시면, dream@fun-coding.org 로 가볍게 알려주시면 또 확인하겠습니다.

감사합니다.

image

0

9999님의 프로필 이미지
9999
질문자

안녕하세요 강사님, 답변 주신 부분 적용해서 set_index('id')를 각 df마다 선언해주고 코드 실행해보니 강의자료에 보여주신 부분과 동일하게 나왔습니다. 제가 이 부분을 미처 생각을 못 했었네요 ㅎㅎ 친절한 답변 감사합니다. 최근 부쩍 추워졌는데 감기 조심하세요.

9999님의 프로필 이미지

작성한 질문수

질문하기