该数据为网上公开脱敏数据,从广告展示到最终付费转化的全过程。
文章目录
前言
数据来源:
kaggle
广告转化率、付费率、哪些广告转化率高,哪些特征的用户转化率高、哪些广告转化率高但付费率低,进而优化广告的投放策略。
数据分析流程步骤:
1.提出问题–>2.理解数据–>3.清洗数据并建立模型–>结论
一、提出问题
二、理解数据
三、清洗数据并建立模型
数据处理流程:
选择子集对应列–>列名重命名–>重复值处理–>空值处理–>一致化处理–>排序–>异常值处理–>特征工程–>建立模型
好的废话不多说,先上结果(这是第一种结果呈现的方式):
第一种
问题一,转化率是否与性别有关系?
问题二, 转化率是否与年龄段有关?
问题三, 转化率是否与爱好有关?
问题四, 展示次数、点击次数、咨询次数和付费次数的相关性怎样?
第二种
以下是第二种结果呈现的方式
1.选择子集对应列
import pandas as pd
data = pd.read_csv(r'data.csv',sep=',',header='infer')
# 选择子集(对应列)
choose_column_name= data[['ad_id','age','gender','interest','Impressions','Clicks','Spent','Total_Conversion','Approved_Conversion']]
choose_column_name.head(10)
2.列名重命名
rename_column = {
"ad_id" : "广告ID",
"age" : "年龄",
"gender" : "性别",
"interest" : "兴趣",
"Impressions" : "展示次数",
"Clicks" : "点击次数",
"Spent" : "花费",
"Total_Conversion" : "咨询次数",
"Approved_Conversion" : "付费次数",
}
choose_column_name.rename(columns = rename_column,inplace = True)
choose_column_name.head(10)
3.重复值处理
choose_column_name.drop_duplicates().count()
操作后没有发现由重复值。
4.空值处理
choose_column_name.isnull().count()
没有空值所以不需要处理
5.一致化处理
choose_column_name.dtypes
类型不用处理
6.排序
choose_column_name.sort_values(by ="花费",ascending = True)
对花费排序,没有发现异常值
7.异常值处理-看看描述性统计
choose_column_name.describe()
没有发现类似花费是负数等异常值
8.对兴趣列进行特征提取
interest_df = pd.DataFrame()
interest_df = pd.get_dummies(choose_column_name['兴趣'],prefix = 'interest')
interest_df.head()
choose_column_name = pd.concat([choose_column_name,interest_df],axis = 1)
choose_column_name.head()
9.对年龄进行特征提取
age_df = pd.DataFrame()
age_df = pd.get_dummies(choose_column_name['年龄'],prefix = 'Age')
age_df.head()
choose_column_name = pd.concat([choose_column_name,age_df],axis = 1)
choose_column_name.head()
10.建立模型
展示次数
# 建立模型
# 展示次数
# choose_column_name["展示次数"].sum()
"{0} {1} {2}".format("展现量:",choose_column_name["展示次数"].sum(),"(次)")
# 点击次数
# choose_column_name["点击次数"].sum()
"{0} {1} {2}".format("点击次数:",choose_column_name["点击次数"].sum(),"(次)")
# 咨询次数
# choose_column_name["咨询次数"].sum()
"{0} {1} {2}".format("咨询次数:",choose_column_name["咨询次数"].sum(),"(次)")
# 付费次数
# choose_column_name["付费次数"].sum()
"{0} {1:d} {2}".format("付费次数:",<