一、需求
1.根据某*电商平台的某*店铺历史交易数据进行整体的统计分析,按月统计销售数量及交易金额的变化趋势,统计各省份的销售情况,及销售环比情况。
2.根据某*电商平台的某*店铺历史交易数据进行历史客户价值分析。考虑用户对店铺的贡献,复购率、对品牌的忠诚等因素,为用户贴标签,客户更加精准地进行划分,从而实现针对性的营销运营,降低营销成本,同时提高营销效果。
工具:mysql+python+tableau
可视化截图
二、获取源数据
数据存在公司数据库,在做数据分析测试阶段,我们提取2018.11-2019.5的数据集用于做前期的数据分析。
数据字段及解释如下:orders(订单明细)表和failedorder(交易未达成)表。
#pandas库连接mysql获取数据
import pandas as pd
import pymysql
from sqlalchemy import create_engine
# 初始化数据库连接,使用pymysql模块
# MySQL的用户:root, 密码:123456, 端口:3306,数据库:lean2
con = create_engine('mysql+pymysql://root:123456@localhost:3306/rfm')
sql01 = '''select * from orders;'''
sql02 = '''select * from failedorder;'''
# read_sql_query的两个参数: sql语句, 数据库连接
orders = pd.read_sql_query(sql01, con = con)
failedorder = pd.read_sql_query(sql02,con=con)
print(orders.shape,failedorder.shape) #-->(28809, 12) (1040, 2)
三、数据清洗(工具:python)
1、合并表
df=orders.merge(failedorder,how='left',on="order_id") #表合并
#合并后failed_state字段如果为空,则表示交易成功
df['failed_state'] = df['failed_state'].fillna("交易成功")
display(df.head())
2、数据过滤,删除交易失败的数据集
df = df[df['failed_state']== "交易成功"] #布尔过滤
# df = df.query("failed_state == '交易成功'") #query()过滤
display(df.shape) #(27769, 13)
3、获取统计信息,初步发现异常值
display(df.describe()) #获取统计信息
display(df.info()) #发现缺失值
display(df[['money','postage','num']].describe()) #数值型变量单独统计
display(df[df.duplicated(subset=['order_id'],keep='first')])#发现重复值