Skip to main content
시간축 데이터는 동일 키 조인보다 가장 가까운 시점 매칭이 더 자주 필요합니다. merge_asof는 이벤트 로그, 시세, 센서 데이터 결합에서 유용합니다.

기본 개념

  • 왼쪽 시간(left_on) 기준으로
  • 오른쪽 시간(right_on)에서
  • 가장 가까운 과거/미래/양방향 값을 매칭

예시

trades = trades.sort_values("ts")
quotes = quotes.sort_values("ts")

out = pd.merge_asof(
    trades,
    quotes,
    on="ts",
    by="symbol",           # 종목별 매칭
    direction="backward",  # 과거 기준
    tolerance=pd.Timedelta("2s"),
)

direction 선택

direction의미대표 상황
backward직전 값 매칭이벤트 시점의 직전 상태 참조
forward직후 값 매칭예약/예측 값 결합
nearest가장 가까운 값센서 동기화

품질 검증

matched_rate = out["quote_price"].notna().mean()
lag = (out["ts"] - out["quote_ts"]).dt.total_seconds().abs()
print("matched rate:", matched_rate)
print("p95 lag:", lag.quantile(0.95))
조인 성공률과 시차 분포를 함께 추적하면, tolerance 설정이 과한지 부족한지 빠르게 판단할 수 있습니다.

이어서 볼 문서