[data science] pandas : join 연산 - index 기준 합치기 [join()]

덴장·2026년 5월 1일

data

목록 보기
49/55
  1. 인덱스를 이용한 조인: join 함수는 인덱스를 Key값으로 사용하여 데이터를 합치는 기능을 제공. index가 없다면 설정. 기본적으로 left outer join을 함
  2. 컬럼 중복 해결: 겹치는 컬럼이 있을 경우, lsuffix와 rsuffix를 설정하여 수동으로 접미사를 지정
  3. 조인 유형 설정: 기본적으로 Left Outer Join을 수행하며, how 파라미터를 통해 Inner Join 등 다른 유형으로 변경
  • index를 키로 사용하므로 index 가 없는 경우 설정해야함
employee_df = employee_df.set_index('id')
survey_df = survey_df.set_index('employee_id')
#join함수는 suffix 설정을 해줘야 함.
employee_df.join(survey_df, lsuffix='_x', rsuffix='_y')#왼쪽을 기준으로 join

*inner 조인

company_df = employee_df.join(survey_df, lsuffix='_x', how='inner')
company_df
import pandas as pd

asteroid_df = pd.read_csv('data/asteroid.csv', index_col='id')
orbit_df = pd.read_csv('data/orbit.csv', index_col='asteroid_id')

nasa_df = asteroid_df.join(orbit_df, how='inner')
nasa_df
  • join() 함수에서 컬럼을 키 값으로 사용하는 방법
    join()에서는 on이라는 옵션을 사용해서 왼쪽 데이터에서 키 값으로 사용할 컬럼을 지정할 수 있다. 예를 들어 아래 코드를 실행하면 employee_df 데이터의 id 컬럼과 survey 데이터의 인덱스를 기준으로 조인 연산을 수행하는데 이때 주의할 점은 왼쪽 데이터만 인덱스와 컬럼 중에서 자유롭게 키 값을 선택할 수 있고, 오른쪽 데이터는 인덱스만 키 값으로 사용할 수 있다는 것입니다. 추가적으로, 지금 데이터에 공통적으로 department라는 컬럼이 있으니까, 오류가 나지 않게 rsuffix 값도 아래와 같이 설정.
#reset_index() 함수를 사용해서, employee_df의 사원 번호(id)를 다시 컬럼으로 변경
employee_df = employee_df.reset_index()
employee_df.join(survey_df, on='id', rsuffix='_x')
profile
개발자

0개의 댓글