[데이터분석] 부트캠프 TIL

20260317 TIL

myun0506 2026. 3. 17. 21:07

[Today I Learn]


📌 과제1. 네이버 트렌드 API 활용

1. 헤더 생성

  • API 인증 정보(Client ID, Client Secret)를 변수에 저장
  • 요청 헤더에 X-Naver-Client-Id, X-Naver-Client-Secret, Content-Type: application/json을 설정

2. 요청 본문 데이터 구성

  • datetime.now()와 timedelta(days=365)를 사용해 현재 날짜 기준 1년 전까지의 기간을 자동 설정
  • 분석할 키워드 그룹 4개를 리스트로 구성:
    • 패션의류, 전자제품, 화장품뷰티, 식품구매
  • 각 그룹에 관련 키워드를 여러 개 포함시킴
  • timeUnit은 "week" (주간 단위)으로 설정

3. API 요청 실행

  • requests.post()로 POST 요청 전송
  • json.dumps(request_body)로 요청 본문을 JSON 문자열로 변환하여 전달

4. API 응답 저장 및 데이터 추출

  • response.status_code == 200으로 성공 여부 확인
  • 응답 JSON에서 results → title(카테고리명), data → period(날짜), ratio(검색 비율) 추출
  • 딕셔너리로 정리 후 리스트에 append → pd.DataFrame으로 변환

💡 핵심 포인트

  • 시계열 데이터는 반드시 pd.to_datetime()을 거쳐야 함
    • 문자열 상태로 두면 matplotlib이 시간 축 간격을 논리적으로 배치하지 못함
  • pd.json_normalize도 공부해볼 것
    • 지금은 반복문으로 처리했지만, 실무에서 JSON 구조가 복잡해지면 중첩 구조를 한번에 펼쳐주는 pd.json_normalize가 훨씬 유용함

5. 시각화

  • sns.lineplot()으로 카테고리별 검색 트렌드 시각화
  • ax.set_xticks(df['date'].unique())로 모든 날짜를 눈금으로 지정
  • plt.xticks(rotation=45), plt.grid(True, alpha=0.5), plt.tight_layout() 등으로 가독성 향상

 


 

과제2. 카카오맵 API - 할리스 카페 지오코딩

  • 카카오 로컬 API(주소 검색)를 활용하여 할리스 카페 매장 주소 → 위도/경도 좌표 변환
  • 헤더: "Authorization": f"KakaoAK {API_KEY}" / 엔드포인트: https://dapi.kakao.com/v2/local/search/address.json
  • 💡 카카오맵 API 사용 시 카카오 개발자 사이트에서 카카오맵 권한도 별도로 ON 해줘야 함

데이터 전처리 (정규표현식)

  • re.sub(r'\\(.*\\)', '', address) → 괄호 안 내용 제거 (e.g. (대방동))
  • \\d+층.*, \\d+~+\\d+층.*, \\d+호.*, 지하.*층.* → 층/호 등 상세주소 패턴 제거
  • API에 깔끔한 주소만 넘겨야 정확한 결과를 받을 수 있음

DataFrame 변환 & 합치기

  • .apply(geocode_address).apply(pd.Series) → dict 반환값을 열(column)로 펼쳐서 DataFrame 변환
  • pd.concat([address_df, lat_lng_df], axis=1) → 좌우 합체

🚨 concat vs merge 핵심 정리

  • merge: 특정 키 기준 매칭 → 키가 조금이라도 다르면 합쳐지지 않음
  • concat: 인덱스 순서 기반으로 단순 결합 → 빠르고 간결
  • axis=0: 위아래로 쌓기 / axis=1: 옆으로 붙이기

🚨 concat 사용 시 주의점

  • axis=1 → 두 DataFrame의 인덱스가 다르면 NaN 발생 → 합치기 전 reset_index() 필수
  • axis=0 → 인덱스 꼬일 수 있으므로 ignore_index=True 습관화

지도 시각화 (folium)

  • 위도/경도 평균값으로 지도 중심 설정
  • NaN인 행은 제거 후 시각화
  • MarkerCluster로 매장 위치 표시, 클릭 시 매장명/주소/좌표 정보 표시

'[데이터분석] 부트캠프 TIL' 카테고리의 다른 글

20260320 TIL  (1) 2026.03.20
20260318 TIL  (0) 2026.03.18
20260316 TIL  (1) 2026.03.16
20260313 TIL  (0) 2026.03.13
20260312 TIL  (0) 2026.03.12