본문 바로가기
판다스/함수 cheat sheet

[pandas] merge_asof

by 김판다t 2022. 12. 29.

범위를 기준으로 병합을 수행하는 함수. 엑셀의 indexmatch 조합과 비슷하다.

 

import pandas as pd
data1 = {'이름': ['라', '나', '다', '가', '마'], '점수': [60, 72, 80, 88, 95]}
data2 = {'점수': [0, 70, 80, 90], '학점': ['F', 'C', 'B', 'A']}
df1 = pd.DataFrame(data1)
df2 = pd.DataFrame(data2)

pd.merge_asof(df1, df2, on='점수')

 

 

 

 

 

 


 

pandas merge_asof

 

pd.merge_asof(left, right, on=None, by=None, allow_exact_matches=True, direction='backward')

 

 

 

left (인수는 데이터프레임 혹은 시리즈)

병합할 객체1

 

 

 

right (인수는 데이터프레임 혹은 시리즈)

병합할 객체2

 

 

 

on (인수는 열의 레이블)

유사일치로 병합할 기준이 되는 열의 레이블을 지정한다.

  1. 반드시 하나의 열만 지정해야 한다.
  2. 숫자나 datetime 같이 유사일치가 가능한 자료형의 열이어야 한다.
  3. 오름차순으로 정렬이 되어 있어야 한다.
  4. 기본값은 존재하나 기본값을 사용하지말고 지정하도록 하자.

 

 

by (인수는 열의 레이블 또는 열의 레이블의 리스트)

정확히 일치시킬 열을 지정하는 매개변수

 

 

 

allow_exact_matches (인수는 bool / 기본값은 True)

경계값을 어느 그룹에 넣어 병합하느냐를 결정하는 매개변수

 

 

 

 

direction (인수는 ‘backward’, ‘forward’, ‘nearest’ / 기본값은 ‘backward’)

경계를 기준으로 유사일치시킬 방향을 결정하는 매개변수

‘backward’는 가의 88점보다 작은 점수중 가장 큰 80을 찾아 B학점을 부여한다. 기본값이다.

‘forward’는 가의 88점보다 큰 점수중 가장 작은 90을 찾아 A학점을 부여한다.

‘nearest’는 가의 88점과 가장 가까운 90을 찾아 A학점을 부여한다.

 

 

 

 

 

그외 많은 매개변수들이 있다. 더 궁금하면 아래 링크를 참고

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.merge_asof.html

 

 

 

 

 

드디어 판다스 책이 출판되었습니다.

https://product.kyobobook.co.kr/detail/S000214350781

 

 

 

 

 

 

 

 

 

 

 

 

'판다스 > 함수 cheat sheet' 카테고리의 다른 글

[pandas] concat  (0) 2022.12.30
[pandas] sort_values  (0) 2022.12.30
[pandas] merge  (0) 2022.12.29
[pandas] read_excel  (0) 2022.12.29
[pandas] #02 iloc 인덱싱  (0) 2022.02.19