• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

지난 질문에 대한 재질문 드립니다!

20.12.27 11:23 작성 조회수 209

0

left merge 관련하여 질문드렸었는데 더 구체화해서 재질문하겠습니다! 

이렇게 해당 dataframe은 doc 이라는 변수에 할당했습니다 

그리고 이렇게 country_info 도 가져왔습니다 

위 dataframe 두개를 left merge 한 자료입니다. 강사님 강의 자료에서 그대로 캡처해왔습니다! 

test_df = pd.merge(doc, country_info, how='left', on='Country_Region')

이렇게 되면 왼쪽 테이블과 오른쪽 테이블 모두의 컬럼을 가져오는 것은 이해했습니다.

이렇게 left merge 식을 쓰면 왼쪽  테이블에 있는 정보는 모두 다 가져오고 오른쪽 테이블에서는 기준이 되는 컬럼 즉, 여기서는 Country_Region 의 컬럼값이 왼쪽과 같은 행만 가져오는것으로 알고 있습니다 

그렇게 되면 doc을 출력해보면 총 37행이고 country_info를 출력해보면 3000행을 넘어가던데 두 merge 값인 test_df 가 어떻게 3332행이 나올 수 있는 건가요? 왼쪽에 맞춰야하면 기본적으로 왼쪽 테이블의 모든 값을 다 가져오고 이에 겹치는 오른쪽 행들이 있다해도 37줄이 나와야 하는게 아닌가요?

답변 2

·

답변을 작성해보세요.

0

Jin님의 프로필

Jin

질문자

2020.12.29

같은 Country_Region 들이 겹친다는 것은 알았는데 그것이 랜덤으로 이어지는게 아니라 하나씩 각각 merge 되는 것인가봅니다. 감사합니다!  

0

그것은 예를 들어, doc 안에 Country_Region 값이 US 인 행이 하나 있는데요. 

country_info 에는 Country_Region 값이 US 인 행이 수천개 정도 되어서, doc 의 한 행에 country_info 의 수천개의 행이 붙으면서, 각기 새로운 행으로 만들어지는 것처럼 보이는 바람에 수천개가 보여집니다.

말씀드린대로, 다음 left 외부 조인 그림과 같이 동작은 하는 것입니다. 

마지막으로 다음 내용도 꼭 이해를 부탁드립니다. 

첫번째, 질문 전 검색은 필수! google.co.kr 에서 질문에 대해 검색해보세요! 에러 메시지는 맨 마지막 라인을 복사해서 구글에서 검색해보시고, 질문에 대해서는 질문 관련 키워드들을 조합해서 구글에서 검색해보세요. 개발자들은 모두 이를 통해, 답변을 얻습니다. 한발짝 나아가시려면, 반드시 이런 연습이 꼭 필요합니다. 사실 검색 없이 질문을 통해, 바로 답을 얻는 부분은 장기적으로는 큰 의미가 없어요. 궁극적으로는 프로그래밍은 답을 찾는 연습을 하셔야 합니다. 저는 한가지 확인이 필요한 사안을 위해, 20 ~ 30분 검색과 10개 이상의 블로그를 찾아보는 일을 하루에도 한두번씩 한답니다. 검색이 처음이신 분들은 개발자를 위한 정보 검색 팁을 참고하시면 훨씬 성장하시는데 도움이 되실 것입니다.

두번째, 질문은 어느 강의의 어느 구간에 대해 질문하시는 것인지 꼭 명기해주세요. 그래야 맥락이 이해가 가서, 보다 좋은 답변할 수 있습니다.

온라인 상의 커뮤니케이션이라서, 서로 배려하지 않으면 상처가 될 수 있어요. 함께 성장하는 현업 개발자와 수강생으로써, 서로 배려하는 공간이 되기를 바라겠습니다. 감사합니다.

잔재미코딩 Dave Lee 드림