✏️ 2025. 01. 20 TIL

Dada·2025년 1월 20일

▶ Python 챌린지 개인 과제

1. API를 활용하여 데이터 불러오기

Steam 플랫폼에서 출시된 게임들의 데이터를 조회해보고 싶어서 관련 API를 찾아봤다.

우선, Steam 공식 API인 Steam Web API를 살펴보았다.

하지만.. 요 데이터만 가지고는 인사이트를 도출해내기 어려울 듯 싶어서 다른 API들을 추가로 찾아보았다.

다음으로 찾아본 API는 SteamSPY에서 제공하는 API.

데이터 조회를 위한 파라미터는 다음과 같다.

  • request - 요청 타입 지정
    • top100in2weeks : 지난 2주간 가장 인기 있는 게임의 상위 100개 목록
    • top100forever : 역대 가장 인기 있는 게임의 상위 100개 목록
    • all : 모든 Steam 게임의 데이터
    • appdetails : 특정 게임의 세부 정보
  • appid - 특정 게임의 ID (Steam의 App ID)

아래는 데이터 조회를 위해 작성한 코드.

# API URL
url = "https://steamspy.com/api.php"

# 요청 파라미터
params = {"request": "top100in2weeks"}

# API 호출
response = requests.get(url, params=params)

# 데이터 처리
data = response.json()
df = pd.DataFrame(data).T  # 전치(transpose)
df = df.reset_index(drop=True)  # 인덱스 재설정

# 데이터 프레임으로 저장
data = pd.DataFrame(df)


결과적으로 요런 테이블이 나왔다.

2. GitHub, Google 빅쿼리 활용
위에서 작성한 코드를 .py 파일로 변환하여 Github에 업로드 한 후, Colab에서 GitHub에 등록한 코드를 클론했다.

!git clone 복사한 repository 주소

클론된 파일에서 코드를 긁어와서 데이터 프레임 생성

import requests
import pandas as pd

# API URL
url = "https://steamspy.com/api.php"

# 요청 파라미터
params = {"request": "top100in2weeks"}

# API 호출
response = requests.get(url, params=params)

# 데이터 처리
data = response.json()
df = pd.DataFrame(data).T  # 전치(transpose)
df = df.reset_index(drop=True)  # 인덱스 재설정

# 데이터프레임 출력
data = pd.DataFrame(df)

그리고 생성한 테이블을 BigQuery와 연동했다.

  • 연동 전에 BigQuery에서 해야 하는 것
    • 서비스계정 > 키 관리에서 키 발급 받아 두기
    • 연결할 데이터 세트 생성
from google.colab import files
from google.oauth2 import service_account

# 빅쿼리에서 생성한 계정 키 파일 입력
uploaded = files.upload() 

# 서비스 계정 키 파일 경로 설정
key_path = list(uploaded.keys())[0]
credentials = service_account.Credentials.from_service_account_file(key_path)

from google.cloud import bigquery

# BigQuery 클라이언트 생성
client = bigquery.Client(credentials=credentials, project=credentials.project_id)

# 데이터 프레임 업로드
job = client.load_table_from_dataframe(data, "데이터 세트 ID")

# 작업 완료 대기
job.result()

# 결과 확인
print(f"Uploaded {job.output_rows} rows to '데이터 세트 ID"'")


이렇게 해서 빅쿼리 연동까지 완료!

▶ 머신러닝 심화

1. 데이터 분석 프로세스

  • 데이터 수집에 따른 프로세스
    • Data Source
      • OLTP Database(OnLine Transaction Processing): 온라인 뱅킹, 쇼핑, 주문 입력 등 동시에 발생하는 다수의 트랜잭션 처리 유형
      • Enterprise Applications: 회사 내 데이터 (ex. 고객 관계 데이터, 제품 마케팅 세일즈)
      • Third - Party : Google Analytics와 같은 외부소스에서 수집되는 데이터
      • Web/Log: 사용자의 로그데이터
    • Data Lake: 원시 형태의 다양한 유형의 데이터 저장
    • Data Warehouse : 회사의 금융, 마케팅, 영업 부서와 같이 특정 조직의 목적을 위해 가공된 데이터
    • BI/Analytics: Business Intelligence(BI)는 의사결정에 사용된 데이터를 수집하고 분석하는 프로세스

2. 탐색적 데이터 분석 (EDA)

  • 탐색적 데이터 분석(Exploratory Data Analysis, EDA): 데이터 시각화, 기술통계 등의 방법을 통해 데이터를 이해하고 탐구하는 과정
  • 시각화를 이용한 EDA 예시
    • countplot : 범주형 자료의 빈도 수 시각화
    • barplot : 범주형 자료의 시각화
    • boxplot : 수치형 & 범주형 자료의 시각화
    • histogram : 수치형 자료 빈도 시각화
    • scatterplot : 수치형 자료끼리의 관계 시각화
    • pairplot : 전체 변수에 대한 시각화

0개의 댓글