co-LAB
빅데이터 첫걸음 시작하기 : 데이터분석 인강 5주차 본문
5주차 : 실전 파이널 프로젝트
5주차 강의에서는 마케팅 분석 툴로써의 Python을 활용하여
데이터 전처리 / 추출 / 시각화 / 분석 등 데이터 분석 프로젝트를 실습해본다.
˙광고매체 데이터 : 광고매체에서 집행된 광고 성과를 보고서 형식으로 제공하는 데이터
- 광고 성과지표 : CTR (Click Through Rate) / CPM (Cost Per Mile) / CPC (Cost Per Click) / CPA (Cost Per Action)
˙고객 데이터 : 마케팅 활동으로 쌓이는 고객들의 여러가지 정보를 포함한 데이터
- 기업의 목표에 따라 나이, 직업, 결혼여부, 교육수준 등 다양한 데이터 유형이 존재
˙데이터 분석 과정 : 데이터 수집 / 전처리 / 탐색(*시각화) / 모델 선택 / 모델 평가 및 적용
- 시각화의 필요성 : 대량의 데이터 및 패턴 분석
5주차 강의를 통해 그동안 학습한 Python, Pandas를 활용하여
실제 데이터를 활용한 분석 과정을 실습해볼 수 있었다.
결측치나 이상치를 찾아 분석에 적합한 데이터로 가공하는
데이터 전처리 과정을 거쳐, 정리된 데이터를 시각화 등을 통해
탐색하고 패턴을 파악하는 데이터 분석 과정을 실습함으로써
실무에 적용할 수 있는 데이터 분석의 기반을 마련하였다.
데이터를 활용하여 서비스와 관련된 현황, 효과나 원인을 탐구하고
문제 해결 방안을 모색할 수 있도록 실험을 설계하는 작업도 필요할 것이다.
특정 상품의 매출 증가 추이와 원인, 구매 전환 고객 특성 등을 확인하고
특정 상품 페이지나 마케팅 프로세스 등의 A/B테스트와 같은 실험을 고안해볼 수 있을 것이다.
데이터 분석과 통계 관련 지식들을 차곡차곡 쌓아가고,
스킬업을 위해 Python 라이브러리와 SQL 등 필수 역량들을 채워나가야겠다.
분석 결과를 어떤 방식으로 시각화하여 이야기로 만들고
의미 있는 데이터로 보여줄 수 있을지에 대한 고민 또한 꾸준히 정리해 나가야 할 것 같다.
빅데이터 분석 강의를 통해 막연하기만 했던
데이터 분석 직무에 대한 방향성과 고민들을 구체화할 수 있게 되었다.
강의는 끝났지만, 이제 입문한 나에겐 이 강의가 시작점이 되어줄 것이다.
보다 명확한 데이터 기반 의사결정(Data driven decision making)을 위한
나의 노력은 이제부터 시작이다!

마케팅 데이터 분석
˙마케팅 데이터 분석의 고도화
- 과거 : 클릭수, 노출수 등의 단순 마케팅 데이터
- 현재 : 고객의 직업, 성별, 관심사, 통화시간, 결혼여부, 결제방법 등 다양한 데이터
˙분석 목표에 따라 광고매체 / 고객 데이터를 활용한 분석
˙기술 통계량을 사용한 분석 - Pandas / Matplotlib
광고 매체 데이터
1. 광고의 진행 과정
1) 집행 : 매체에 광고 집행 요청
2) 노출 : 매체 광고 노출
3) 클릭 : 매체 광고 클릭 → 광고주 사이트 접속
4) 구매 : 광고주 사이트에서 구매
2. 광고 성과지표
1) CTR (Click Through Rate) = 클릭수 / 노출수 *100
- 노출 대비 클릭 비율 / 높을수록 광고 효율이 좋음
2) CPM (Cost Per Mile) = 광고비용 / 노출수 * 1000
- 노출당 광고비용 / 낮을 수록 광고 효율이 좋음
3) CPC (Cost Per Click) = 광고비용 / 클릭수
- 클릭당 광고비용 / 낮을수록 광고 효율이 좋음
4) CPA (Cost Per Action) = 광고비용 / 구매수
- 구매당 광고비용 / 낮을수록 광고 효율이 좋음
데이터 분석
0. 라이브러리 및 Style 호출
1) 라이브러리 호출
# Pandas 라이브러리 호출
import pandas as pd
from pandas import DataFrame
from pandas import Series
# matplotlib.pyplot 호출
import matplotlib.pyplot as plt
2) matplotlib 한글 폰트 세팅
# matplotlib 한글 폰트 출력코드
# 출처 : 데이터공방( https://kiddwannabe.blog.me)
import matplotlib
from matplotlib import font_manager, rc
import platform
try :
if platform.system() == 'Windows':
# 윈도우인 경우
font_name = font_manager.FontProperties(fname="c:/Windows/Fonts/malgun.ttf").get_name()
rc('font', family=font_name)
else:
# Mac 인 경우
rc('font', family='AppleGothic')
except :
pass
matplotlib.rcParams['axes.unicode_minus'] = False
1. 데이터 전처리
1) read_excel 함수를 사용하여 데이터 호출
# pd.read_excel()호출
# df=pd.read_excel('데이터경로')
df=pd.read_excel('/Users/User1/data.xls')
# Window 경로인식방법
# 방법1 : \\
# 방법2 : /
# 방법3 : r
# skiprows 함수로 불필요한 행 제거
df=pd.read_excel('/Users/User1/data.xls',skiprows=[0])
# 분석 대상 컬럼 선정
# A_column
A_columns = ["columnName1", "columnName2", "columnName3"]
# B_column
ds_columns = ["columnName4", "columnName5", "columnName6"]
#edit_data = data[A_columns + B_columns + y]
edit_data = data[A_columns + B_columns]
edit_data
# 결측치 확인
df.isnull()
# 결측치 확인 - 열단위
df.isnull().sum()
# 결측치 확인 - 행단위
df.isnull().sum(axis=1)
# null이 아닌 row만
edit_data[edit_data.isnull().any(axis=1)]
# 결측치 제거
df.dropna()
2) DataFrame의 열 단위 수치연산 및 데이터 타입 다루기
# 클릭수 반올림 처리 # round(data[],0) : 반올림 처리
clk=round(df['클릭수'],0)
# 소수점 제거 = 실수(float) => 정수(int)로 변경
df['클릭수']=clk.astype(int)
# 클릭률 계산식
# 데이터프레임의 열은 서로 수치연산 가능
df['클릭률(%)']=df['클릭수']/df['노출수']*100
# cpc 변수 생성
cpc=round(df['평균클릭비용(VAT포함,원)'],0)
df['평균클릭비용(VAT포함,원)']=cpc.astype(int)
2. Pandas를 활용한 데이터 탐색
1) 데이터 출력
#전체 데이터 출력
df
#head() - 데이터의 첫 부분 출력, default : 첫 5행
#데이터의 구성,칼럼명 등 대략적인 데이터 파악
df.head()
#head() - 첫 10행
df.head(10)
#tail() - 데이터의 끝 부분 출력, default : 끝 5행
df.tail()
#shape - dataframe의 크기(행, 열의 수)
df.shape
2) 기술통계량
- describe() - 각 열에 대한 기술통계량
- 데이터의 수, 평균, 표준편차, 최소값, 1사분위수, 2사분위수, 3사분위수, 최대값
- 지수표기법 (Exponential Notation, 10**n)
df.describe()
#pandas출력 옵션설정 - float형식으로 수치표기
pd.set_option('display.float_format', '{:.2f}'.format) # 항상 float 형식으로
#columns - 칼럼명 반환
df.columns
#unique() : 고유한 키워드
#df['columnName']
df['columnName'].unique()
#len, unique() : 고유한 키워드 개수
#df['columnName']
len(df['columnName'].unique())
#value_counts() : 열의 고유값 빈도
#df['columnName']
df['columnName'].value_counts()
#sort_values() : 정렬(default : 오름차순)
df['columnName'].sort_values()
#sort_values(ascending=False) : 내림차순 정렬
df['columnName'].sort_values(ascending=False)
3. 시각화를 통한 데이터 탐색
1) 시각화 라이브러리 matplotlib
#노출수 칼럼 시각화
#데이터프레임 시각화 <-> 시리즈 시각화
#type함수
type(df['노출수'])
#plotting
df['노출수'].plot()
plt.show()
'IT LAB > K-Digital Credit' 카테고리의 다른 글
빅데이터 첫걸음 시작하기 : 데이터분석 인강 4주차 (0) | 2022.01.29 |
---|---|
빅데이터 첫걸음 시작하기 : 데이터분석 인강 3주차 (0) | 2022.01.25 |
빅데이터 첫걸음 시작하기 : 데이터분석 인강 2주차 (0) | 2022.01.18 |
빅데이터 첫걸음 시작하기 : 데이터분석 인강 1주차 (0) | 2022.01.11 |