[Python] GA4 파이썬 연동한 데이터 데이터프레임(Dataframe)으로 변환하기

2024.07.05 - [Python] - [Python] Python에 GA4(Google Analytics4) 연동하고 조회하기

 

[Python] Python에 GA4(Google Analytics4) 연동하고 조회하기

참고자료GA4(GoogleAnalytics4) → GCP(Google Cloud Platform) 연결 방법 Google Analystic4(GA4) API 연결 (GCP 환경)이번 프로젝트에서 GCP 환경에서 GA4의 데이터를 불러와야하는 작업이 생겼다.데이터 ETL 파이프라

ian4865.tistory.com

이전 글에서 

request = RunReportRequest(
    property=f"properties/{property_id}", 
    dimensions=[
        Dimension(name="date"),
        Dimension(name="deviceCategory"),
        Dimension(name="country"),
    ],
    metrics=[
        Metric(name="activeUsers"),
        Metric(name="screenPageViews"),
    ],
    date_ranges=[
        DateRange(start_date="7daysAgo", end_date="today")
    ],
    limit = 1000
)
response = client.run_report(request)

for row in response.rows:
    print(row.dimension_values[0].value, row.dimension_values[1].value, row.dimension_values[2].value,
          row.metric_values[0].value, row.metric_values[1].value)
20240704 mobile South Korea 1820 5128
20240704 desktop South Korea 1732 2757
20240628 desktop South Korea 1726 3002
20240703 desktop South Korea 1726 2799

이렇게 GA4에서 파이썬으로 연동한 결과 값을 불러올 수 있지만.. 데이터프레임으로 변환하고 싶을 땐 어떻게 해야할까?

 

<참조자료>

https://stackoverflow.com/questions/77473880/how-to-covert-google-analtics-api-response-to-pandas-data-frame

이럴 때 유용하게 쓸 수 있는 코드를 찾아서 가져왔다! 추출한 reponse 값에 

    # 결과의 모든 열 가져오기
    columns = []
    for col in response.dimension_headers:
        columns.append(col.name)
    for col in response.metric_headers:
        columns.append(col.name)
    # 결과의 모든 행 가져오기
    rows = []
    for row_data in response.rows:
        row = []
        for val in row_data.dimension_values:
            row.append(val.value)
        for val in row_data.metric_values:
            row.append(val.value)
        rows.append(row)

결과의 모든 행과 열을 조정해주는 해당 코드를 섞어주면 된다!

 

결과는 다음과 같다.

def response_to_df_test():
    request = RunReportRequest(
        property=f"properties/{property_id}", 
        dimensions=[
            Dimension(name="date"),
            Dimension(name="deviceCategory"),
            Dimension(name="country"),
        ],
        metrics=[
            Metric(name="activeUsers"),
            Metric(name="screenPageViews"),
        ],
        date_ranges=[
            DateRange(start_date="7daysAgo", end_date="today")
        ],
        limit = 1000
    )
    response = client.run_report(request)
	
    # 결과의 모든 열 가져오기
    columns = []
    for col in response.dimension_headers:
        columns.append(col.name)
    for col in response.metric_headers:
        columns.append(col.name)
    # 결과의 모든 행 가져오기
    rows = []
    for row_data in response.rows:
        row = []
        for val in row_data.dimension_values:
            row.append(val.value)
        for val in row_data.metric_values:
            row.append(val.value)
        rows.append(row)
    
    df = pd.DataFrame(rows, columns=columns)
    return df

RESULT = response_to_df_test()
RESULT

이렇게 하면 GA4에서 파이썬으로 연동한 데이터를 데이터프레임으로 변환할 수 있다!