网站404页面源码,衡阳做网站的公司,用vs2005做网站设计,wordpress 引用图片不显示文章目录一、数据来源及理解二、分析思路三、数据处理数据预处理数据清洗数据转换四、数据描述性统计五、三维分析-人用户质量分析用户类别分析DM(管理者)排名分析六、三维分析-货销售金额及销量分布情况商品退货率七、三维分析-场城市区域八、总结一、数据来源及理解
此次分析…
文章目录一、数据来源及理解二、分析思路三、数据处理数据预处理数据清洗数据转换四、数据描述性统计五、三维分析-人用户质量分析用户类别分析DM(管理者)排名分析六、三维分析-货销售金额及销量分布情况商品退货率七、三维分析-场城市区域八、总结一、数据来源及理解
此次分析数据来源于第二届Power BI 可视化大赛样例数据共有四个表分别为sales storeitemdistrict一共有七十万左右的数据。
二、分析思路
按照人-货-场三维分析角度进行分析分析导图
三、数据处理
数据预处理
整个数据包括四张表三十九个不同字段但在实际分析过程中我们只用到了十五个字段为了让数据分析更高效所以我复制了一份并对其进行一个整合成为一张表。
数据清洗
利用Python语言进行数据分析开发工具有Jupyter Notebook利用的包主要是pandas、numpymatplotlib.pyplot。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
#codingutf-8
file_name D:\\Analysis.xlsx
xls pd.ExcelFile(file_name)
xs xls.parse(salesdata,dtypeobject)
plt.rcParams[font.sans-serif][SimHei] #显示中文
plt.rcParams[axes.unicode_minus]False #允许显示负数
xs.info() 数据总共为327047 条包含15个特征接下对数据进行观察并做数据清洗处理。本次数据集比较“干净”不存在缺失值。另外有些特征的属性需要更改例如金额及销量的数据类型。
数据转换
数据类型全为object类型转换数据类型为数值型
xs[Sum_GrossMarginAmount]pd.to_numeric(xs[Sum_GrossMarginAmount], errorscoerce).fillna(0) ##数据文本型转换为数值型
xs[Sum_Regular_Sales_Dollars]pd.to_numeric(xs[Sum_Regular_Sales_Dollars], errorscoerce).fillna(0)
xs[Sum_Markdown_Sales_Dollars]pd.to_numeric(xs[Sum_Markdown_Sales_Dollars], errorscoerce).fillna(0)
xs[Sum_Regular_Sales_Units]pd.to_numeric(xs[Sum_Regular_Sales_Units], errorscoerce).fillna(0)
xs[Sum_Markdown_Sales_Units]pd.to_numeric(xs[Sum_Markdown_Sales_Units], errorscoerce).fillna(0)
xs[SellingAreaSize]pd.to_numeric(xs[SellingAreaSize], errorscoerce).fillna(0)
由于在本次数据集中没有明确的时间字段所以我们在这不做时间维度的分析如果要做时间维度的分析还需要对时间字段做一个类型转换。
四、数据描述性统计
xs[[Sum_GrossMarginAmount,Sum_Regular_Sales_Dollars,Sum_Markdown_Sales_Dollars,Sum_Regular_Sales_Units,Sum_Markdown_Sales_Units]].describe() 可以看到在销售金额中存在着负数这可能是退货的订单需要进行筛选。可以看出各字段的平均值都在百分之75的订单之下表明存在了一些购买力极强的用户。我们可以将图做出来会更加明显。以’Sum_Regular_Sales_Dollars’字段为例
plt.subplot(341)
xs[Sum_Regular_Sales_Dollars].hist(figsize(10,6),bins100,colorc)
plt.subplot(342)
xs[xs[Sum_Regular_Sales_Dollars]1000][Sum_Regular_Sales_Dollars].hist(figsize(10,6),bins10,colorc)
plt.subplot(343)
xs[xs[Sum_Regular_Sales_Dollars]3150][Sum_Regular_Sales_Dollars].hist(figsize(10,6),bins10,colorc)
plt.subplot(344)
xs[xs[Sum_Regular_Sales_Dollars]0][Sum_Regular_Sales_Dollars].hist(figsize(10,6),bins10,colorc)
在第一张图中可以看出很明显的长尾效应取了销售金额小于1000的数据可以看出大部分的销售金额都集中在0到250美元另外还存在几条销售金额大于3150美元订单。退货订单金额基本上在100美元以内其具体原因后续可做具体分析先找出退货的订单用户查用户在退货之后是否有购物情况是否为第一次购买就退货等 将其打印出来可以看到是来自itemid为155579、及183620的订单而其购买的原因不得而知如果有相关的数据可以进行分析是否为异常数据。
xs[xs[Sum_Regular_Sales_Dollars]3150] 五、三维分析-人
用户质量分析
通过二八原则去寻找关键的那20%决定性因素
# 计算高质量用户贡献了多少份额(28倾向
user_amount xs.groupby(Buyer)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse).reset_index()
user_amount[amount_cumsum] user_amount[Sum_Regular_Sales_Dollars].cumsum()
amount_total user_amount[amount_cumsum].max()
user_amount[percentage] user_amount[amount_cumsum] / amount_total
#统计销量
user_count xs.groupby(Buyer)[Sum_Regular_Sales_Units].sum().sort_values(ascendingFalse).reset_index()
user_count[count_cumsum] user_count[Sum_Regular_Sales_Units].cumsum()
count_total user_count[count_cumsum].max()
user_count[percentage] user_count[count_cumsum] / count_total
#画图
plt.rc(font, familysimhei, size9)
plt.subplot(221)
plt.title(零售消费额占比)
plt.ylabel(累计比率)
plt.plot(user_amount[percentage])
plt.grid(color#95a5a6, linestyle--, linewidth1, alpha0.4)
plt.subplot(222)
plt.title(零售销量占比)
plt.ylabel(累计比率)
plt.plot(user_count[percentage])
plt.grid(color#95a5a6, linestyle--, linewidth1, alpha0.4)
plt.show()
user_amount.head(20) 用户类别分析
用户类别分析看各类别用户占比分别为多少针对不同类别推出不同的方案提升销售额。
#用户类别分析
fig1 plt.subplot(131)
categoryxs.groupby(Category).Sum_Regular_Sales_Dollars.sum()/xs.Sum_Regular_Sales_Dollars.sum()
category.plot.pie(figsize(12,10),autopct%1.1f%%,shadowTrue,startangle90)
plt.title(零售分类占比)
fig2 plt.subplot(133)
categoryxs.groupby(Category).Sum_Markdown_Sales_Dollars.sum()/xs.Sum_Markdown_Sales_Dollars.sum()
category.plot.pie(figsize(12,10),autopct%1.1f%%,shadowTrue,startangle90)
plt.title(折扣分类占比) DM(管理者)排名分析
各DM管理下销量情况按降序排列输出
order_DM xs.groupby(DM)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse).plot.bar() 六、三维分析-货
销售金额及销量分布情况
零售销售额与数量情况打折销售额与数量情况
plt.figure(figsize(12,4))
plt.subplot(121)
plt.scatter(x Sum_Regular_Sales_Dollars, y Sum_Regular_Sales_Units,dataxs)
plt.xlabel(每笔零售订单消费金额)
plt.ylabel(每笔零售订单购买数量)
plt.subplot(122)
plt.scatter(x Sum_Markdown_Sales_Dollars,y Sum_Markdown_Sales_Units,data xs)
plt.xlabel(每位折扣消费金额)
plt.ylabel(每位折扣购买数量)
plt.show()
观察散点图各点的分布发现呈现一个高度的集中零散几个极值符合零售行业规律相比而言折扣消费的分布更具规律初步估计这家店应该是按照金额数或者订单数进行一个折扣销售。
商品退货率
#零售商品退货率%
xs[xs[Sum_Regular_Sales_Dollars]0][Sum_Regular_Sales_Dollars].sum()/xs[Sum_Regular_Sales_Dollars].sum()*(-100)
#折扣商品退货率%
xs[xs[Sum_Markdown_Sales_Dollars]0][Sum_Markdown_Sales_Dollars].sum()/xs[Sum_Markdown_Sales_Dollars].sum()*(-100) 产品的加起来退货率不足1%在能接受的范围以内没有前后的一个退货率进行一个对比有对比的话更能做好总结。
七、三维分析-场
城市
1)城市销售前十
#各城市零售销售排名前十
xs.groupby(City Name)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse).head(10)
#各城市折扣销售排名前十
xs.groupby(City Name)[Sum_Markdown_Sales_Dollars].sum().sort_values(ascendingFalse).head(10) 2退货率排名前十的城市
#各城市零售退货率排名前十的城市
failxs[xs[Sum_Regular_Sales_Dollars]0].groupby(City Name)[Sum_Regular_Sales_Dollars].sum()/xs[Sum_Regular_Sales_Dollars].sum()*(-100)
fail.sort_values(ascendingFalse).head(10)
#各城市折扣退货率排名前十的城市
fail1xs[xs[Sum_Markdown_Sales_Dollars]0].groupby(City Name)[Sum_Markdown_Sales_Dollars].sum()/xs[Sum_Markdown_Sales_Dollars].sum()*(-100)
fail1.sort_values(ascendingFalse).head(10) 区域
1区域排名
#区域零售销售排名
xs.groupby(Territory)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse)
#区域折扣销售排名
xs.groupby(Territory)[Sum_Markdown_Sales_Dollars].sum().sort_values(ascendingFalse) 折扣销售跟零售销售的排名区域是一模一样的存在很强的正向相关。符合销售规律购买越多所享受的折扣越多 2)商店大小与销售额
#区域大小与零售销售额
xs.groupby(SellingAreaSize)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse)
#区域大小与折扣销售额
xs.groupby(SellingAreaSize)[Sum_Markdown_Sales_Dollars].sum().sort_values(ascendingFalse) 销售额跟商店大小没有很明显的相关关系猜想对销售影响更多的可能是区域 3区域质量分析
# 计算高质量区域用户贡献了多少份额(28倾向零售
territory_amount xs.groupby(Territory)[Sum_Regular_Sales_Dollars].sum().sort_values(ascendingFalse).reset_index()
territory_amount[amount_cumsum] territory_amount[Sum_Regular_Sales_Dollars].cumsum()
amount_total territory_amount[amount_cumsum].max()
territory_amount[percentage] territory_amount[amount_cumsum] / amount_total
#折扣
territory_amount xs.groupby(Territory)[Sum_Markdown_Sales_Dollars].sum().sort_values(ascendingFalse).reset_index()
territory_amount[amount_cumsum] territory_amount[Sum_Markdown_Sales_Dollars].cumsum()
amount_total territory_amount[amount_cumsum].max()
territory_amount[percentage] territory_amount[amount_cumsum] / amount_total
#画图
plt.rc(font, familysimhei, size9)
plt.subplot(221)
plt.title(区域零售消费额占比)
plt.ylabel(累计比率)
plt.plot(territory_amount[percentage])
plt.grid(color#95a5a6, linestyle--, linewidth1, alpha0.4)
plt.rc(font, familysimhei, size9)
plt.subplot(222)
plt.title(区域折扣消费额占比)
plt.ylabel(累计比率)
plt.plot(territory_amount[percentage])
plt.grid(color#95a5a6, linestyle--, linewidth1, alpha0.4)
territory_amount.head(20) 结合图表可知五个区域左右贡献了80%以上的销售额还有很多区域市场等待开发后续可关注一下高质量区域是否市场饱和。 4新老店分析
1新老店分类分析
#新老店分析
fig1 plt.subplot(131)
categoryxs.groupby(Store Type).Sum_Regular_Sales_Dollars.sum()/xs.Sum_Regular_Sales_Dollars.sum()
category.plot.pie(figsize(12,10),autopct%1.1f%%,shadowTrue,startangle90)
plt.title(零售分类占比)
fig2 plt.subplot(133)
categoryxs.groupby(Store Type).Sum_Markdown_Sales_Dollars.sum()/xs.Sum_Markdown_Sales_Dollars.sum()
category.plot.pie(figsize(12,10),autopct%1.1f%%,shadowTrue,startangle90)
plt.title(折扣分类占比)

2新老店退货率
python
#新老店的退货率
fail1xs[xs[Sum_Markdown_Sales_Dollars]0].groupby(Store Type)[Sum_Markdown_Sales_Dollars].sum()/xs[Sum_Markdown_Sales_Dollars].sum()*(-100)
fail1.sort_values(ascendingFalse) 新店的销售占比很小可以大力开发一下新店的价值。新老店的退货率中新店退货率显然更高找一下原因提升服务增加粘性思考打优质服务战还是高性价比产品。
八、总结
在本次分析中主要利用了人货场分析思路进行分析对退货率用户质量等指标进行了量化分析。对数据的分布、对比进行了分析由于缺少了时间维度无法对其进行变化、预测分析。