Pandas 검색 지표 병합: 날짜와 사이트를 기준으로 집계

여러 사이트의 검색 지표를 합칠 때는 사이트·날짜를 결합 키로 사용하고 클릭률을 단순 평균하지 않아야 합니다.

어떤 상황에서 적용하나요?

아래는 같은 스키마의 작은 표를 합치는 예제입니다. 외부 분석 계정에 접근하지 않으며 결과의 합계를 입력 합계와 대조합니다. Pandas가 필요합니다.

검증 범위: 아래 코드는 외부 서비스에 요청하지 않는 로컬 예제입니다. 실제 서비스 연결은 별도로 검증해야 합니다.

최소 예제로 동작 확인하기

import pandas as pd

a = pd.DataFrame([{"site": "a", "date": "2026-10-01", "clicks": 2, "impressions": 10}])
b = pd.DataFrame([{"site": "b", "date": "2026-10-01", "clicks": 3, "impressions": 90}])
combined = pd.concat([a, b], ignore_index=True)
daily = combined.groupby("date", as_index=False)[["clicks", "impressions"]].sum()
daily["ctr"] = daily["clicks"] / daily["impressions"].replace(0, float("nan"))
assert daily.loc[0, "clicks"] == 5
assert daily.loc[0, "impressions"] == 100
assert daily.loc[0, "ctr"] == 0.05
print(daily.to_string(index=False))

결과는 어떻게 확인하나요?

합계는 클릭 5회, 노출 100회이며 CTR은 5%입니다. 사이트 A의 20%와 B의 약 3.33%를 단순 평균한 값과는 다릅니다. 노출을 분모로 다시 계산해야 하는 이유를 이 차이로 확인할 수 있습니다.

실제 업무에 적용할 때 확인할 점

같은 사이트의 같은 날짜를 두 번 가져오지 않도록 자료의 집계 단위와 유일 키를 정하세요. 시간대와 확정되지 않은 날짜도 구분해야 합니다. 평균 게재순위는 단순 합산할 수 없으므로 별도로 계산 방식을 설계해야 합니다.

공식 자료와 다음 단계

관련 공식 문서에서 사용하는 버전의 기능과 제한을 확인하세요.

학습 경로: 데이터 처리 가이드 · 중복 저장 처리

작성: 로그 · 2026-10-17 수정: 확인되지 않은 경험담과 성능 보장 표현을 제거하고 예제·적용 조건·공식 근거를 보완했습니다.

댓글

이 블로그의 인기 게시물

API 키 저장 방법: 해싱과 암호화의 차이, Fernet 예제

파이썬 Google Sheets API 연동: 서비스 계정 권한과 읽기·쓰기

Pandas 결측치 처리: isna, fillna, dropna 선택 기준