merge 를 했는데 자꾸 row가 늘어난다면... 데이터 괴담.til

히제오·2020년 11월 22일
2

파이썬 til

목록 보기
8/9
post-thumbnail

정말 이상했다.
1536 rows 인 두 데이터 프레임을 merge했는데 merge의 결과물은 자꾸 36352행이라고 한다...
df_all = pd.merge(df1, df2, how = 'inner', on = 'join_id')

이상한 데 조인 조건이 걸려있나 싶어 조인의 기준이 될 column을 친히 join_id 로 rename 해주기까지 했는데 무엇이 문제니... 한 시간을 고생했는데. 결론부터 말하자면 조인 조건이 되는 column에 중복되는 값이 들어있어서 그랬던 것!

merge 에 join 조건의 column을 넣으면 같은 값을 대조해서 같으면 join 을 해주는데... 같은 값이 중복되고 있으니 문제가 생기는 것이다.

식별될 수 있는 키 값이라고 걸어둔 것이 전혀 식별이 안 되고 있었던 거지 어휴!

그래서 index로 merge 하려고 보니 index 도 각각 식별될 수 없는 값으로 지정을 해놨더라... 결국 기본 row index 로 갈아준 뒤, merge했더니 행이 늘어나지 않고 원하는 형태의 데이터 프레임이 나왔다.

기쁨의 1536 rows!

교훈

  • merge 하는데 자꾸 row 가 늘어나면 join 조건이 식별될 수 있는 값으로 이루어져 있는지 확인해보기
  • index도 서로 식별될 수 있는 값으로 구성하기. 사람 일은 어떻게 될 지 모르니까...

궁금한 것

  • merge 할 때 join 의 조건에 column 여러 개를 넣는 방법이 있을까? ex. 1번, 2번 column이 같은 row 를 일치시켜서 join해주세요!
profile
삽질 전문가. 모든 일에 진심인 편.

0개의 댓글