본문 바로가기
빅데이터분석

[메타코드] 파이썬 입문 데이터분석 프로젝트 만들기 - 마케팅 데이터 전처리 & 자동화 프로젝트 (1) 데이터 파악하기

by 모닥불🔥 2024. 6. 16.

 

이번에 메타코드 사이트가 리뉴얼 되었다. 초반이라 그런지 경품 이벤트도 많이 하고, 포인트도 뿌려서 좋음 ㅎ-ㅎ 헤헤

가입 시 5천원 주는 추천인 코드: EQQW-36EH-JY4P

 

이때까지 정리한 강의랑 같은 강의인데 썸네일도 귀엽게 바뀌었다.

사진을 클릭하면 링고선생님의 파이썬 데이터분석 프로젝트 강의를 수강할 수 있다.


🔥 강의 목차

오리엔테이션
파이썬 기초 문법
데이터 전처리
데이터 시각화
마케팅 데이터 분석 및 지표 정의하기

🔥 마케팅 데이터 전처리 &자동화 프로젝트(1) 데이터 파악

지난 시간까지 개념 정리를 마치고, 이제 전처리 단계를 거치고, 그 코드를 자동화 하는 강의이다.

1. 데이터 불러오기

import pandas as pd
import numpy as np

from google.colab import drive
drive.mount('/content/drive')

ad = pd.read_csv('주소/ad1.csv')
log = pd.read_csv('주소/log1.csv')
od = pd.read_csv('주소/order1.csv')

 

pandas와 numpy는 기본적으로 import 해주고, from google.colab ~ 부분은 코랩 사용자만 넣으면 된다. 그리고 pd.read_csv('') 로 원하는 csv 파일들을 불러와서 각각 ad(광고), log(사용자로그), od(주문내역) 변수에 저장했다.

 

2. 광고(ad) 데이터 파악하기

데이터프레임을 불러오면 가장 먼저 데이터에 대한 이해를 해야 한다. head(), shape, describe(), value_counts() 등 여러가지를 사용해 데이터를 요리조리 뜯어 보자.

1) ad.head()

ad.head() # 상위 5개 행 출력

 

date, campaign, ad_group, creative, spend, clicks 총 6개의 열에 어떤 데이터들이 있는지 눈으로 확인할 수 있다. 빅분기 같은 시험장에서는 보통 데이터 정보가 주어지고, 공공데이터 포털 등에서도 어떤 데이터들이 있는지 정보를 볼 수 있다.

실제 현업에서는 누가 어떤 열이 있다고 따로 알려주지 않아도 잘 파악하고 대처할 수 있어야 할 것 같다.

  • date: 광고한 날짜
  • campaign: 광고 캠페인 이름
  • ad_group: 캠페인의 하위 그룹명
  • creative: ad_group 하위의 개별 광고 크레이티브
  • spended: 광고에 대한 총 지출(비용)
  • cilcks: 광고가 클릭된 총 횟수

2) ad.campaign.value_counts()

열을 살펴보니, 캠페인에는 여러 종류가 있는 것 같고, 그 안에 또 하위 그룹들, 크리에이티브들이 있는 것 같다.

value_counts()로 캠페인 별 데이터 수를 비교해보자.

ad.campaign.value_counts() # 캠페인별 값의 개수

 

총 3개의 캠페인이 있고, 각각 531개의 행(데이터)으로 이루어져 있다.

 

3) 조건에 따른 groupby()

groupby()를 이용해 캠페인이 '캠페인1'인 경우에 캠페인, 광고그룹, 크리에이티브 별 데이터 개수를 구해보자.

구하려는 내용은 아래와 같이 쪼개서 코드를 작성한다.

 

- 먼저 캠페인1 일 때, 라는 건 조건문 형태로 쓸 수 있다. ad['campaign'] == 'Campaign_1'

- 이 조건에 해당하는 데이터프레임에서, df[  ad['campaign'] == 'Campaign_1'   ]

- 캠페인(campaign), 광고그룹(ad_group), 크리에이티브(creative) 별로 

  df[  ad['campaign'] == 'Campaign_1'   ].groupby( ['campaign', 'ad_group', 'creative'] )

- 데이터 개수를 확인하면,

  df[  ad['campaign'] == 'Campaign_1'   ].groupby( ['campaign', 'ad_group', 'creative'] ).size()

 

정리하면 아래와 같은 코드가 된다.

ad[ad.campaign == 'Campaign_1'].groupby( by = ['campaign', 'ad_group', 'creative']).size()

 

캠페인1에는 광고그룹이 3종류 있고, creative도 3종류로 각각 59개의 데이터를 가진다.

 

3. log(사용자 행동로그) 데이터와 od(주문) 데이터 파악하기

1) log.head()

ad 데이터와 마찬가지로 head()를 보며 데이터를 파악해보자.

log.head()

 

log 로그 데이터는 고객이 어떤 행동을 하기까지 유입 경로, 시간 등을 보여준다.

  • order_id: 주문번호
  • campaign: 유입경로 캠페인(캠페인이 없는 경우엔 광고를 통해 들어온 것이 아님 - 직접 검색/즐겨찾기 등)
  • timestamp: 고객이 특정 행동을 한 시점
  • event: 방문, 클릭, 구매 등 여러가지 행동의 종류. 이 데이터에서는 '구매(purchase)' 부분만 있음

2) od.head()

od.head()

  • order_id: 주문 번호
  • order_date: 주문 일자
  • order_amount: 수익

이번 글에서는 각 데이터의 형태와 구조를 알아보았다. 수익(od.order_amount)과 매출(ad.spending) 데이터를 함께 봤으면 하는데, 지금은 각각의 테이블로 떨어져 있다. 다음 글에서는 이런 부분을 포함해 실제로 필요한 전처리들을 정리 해볼 예정이다.

 

* 본 게시글은 '메타코드'의 동의를 받아 작성된 글로, 강의 내용에 대한 모든 저작권은 Ringo 선생님에게 있습니다. 개인용도의 학습 외에 무단사용은 엄격히 금지됩니다. 위반 시 법적 조취가 취해질 수 있습니다.