目录

一、数据清洗

1.导入模块、数据

2.信息

二、分析过程

1.获取2011年销售额最高的前十的数据的客户ID

2.分析每年销售额的增长率

3.各个地区分店的销售额

4.新老客户数

三、使用工具、数据源


一、数据清洗

1.导入模块、数据

import pandas as pddata=pd.read_csv('超市数据表整理后.CSV')
data
  • 这里用到的数据在我的资源里面,读者自行下载使用。
  • 注意数据文件需要放在你写代码的文件同一级

2.查看数据内容、信息

data.info()
# 查看数据类型、数量
data.describe()
# 查看数据总体情况,比如四分位、平均值等
data.isnull().any()
# 查看是否有空值

二、分析过程

1.获取2011年销售额最高的前十的数据的客户ID

  • 将时间一列转换成时间对象,方便后面分析时应用
# 将日期转换成时间对象
data['OrderDate']=pd.to_datetime(data['OrderDate'])
data.info() # 这里查看数据类型可以看到OrderDate列变成了时间类型datetime64
  • 生成年份列,用以获取2011年的数据
data['year']=data['OrderDate'].dt.year
data
  • 筛选出2011年的数据,并查看
data_11=data[data['year']==2011]
data_11
  • 进行排序,并获取排名前十的数据
data_11_sales10=data_11.sort_values(by='Sales',ascending=False)[:10]
data_11_sales10

2.分析每年销售额的增长率

  • 将每年的销售额先计算得到
sales_year_2011=data[data['year']==2011]['Sales'].sum()
sales_year_2012=data[data['year']==2012]['Sales'].sum()
sales_year_2013=data[data['year']==2013]['Sales'].sum()
sales_year_2014=data[data['year']==2014]['Sales'].sum()
print(sales_year_2011,'\n',sales_year_2012,'\n',sales_year_2013,'\n',sales_year_2014)
  • 计算增长率,并转换成百分数形式
sales_rate_2012=sales_year_2012/sales_year_2011-1
sales_rate_2013=sales_year_2013/sales_year_2012-1
sales_rate_2014=sales_year_2014/sales_year_2013-1
# 转换成百分数
sales_rate_2012='%.2f%%'%(sales_rate_2012*100)
sales_rate_2013='%.2f%%'%(sales_rate_2013*100)
sales_rate_2014='%.2f%%'%(sales_rate_2014*100)
  • 生成增长率列表
df_sales_rate=pd.DataFrame([0,sales_rate_2012,sales_rate_2013,sales_rate_2014],index=['sales_rate_2011','sales_rate_2012','sales_rate_2013','sales_rate_2014'],columns=['percent'])
print(df_sales_rate)
  • 绘制增长率与销售额数据
import matplotlib.pyplot as pltfig=plt.figure()
ax1=fig.add_subplot(1,1,1)
ax2=ax1.twinx() # 共享x轴
ax1.bar([2011,2012,2013,2014],[sales_year_2011,sales_year_2012,sales_year_2013,sales_year_2014])
ax2.plot([2011,2012,2013,2014],[0,sales_rate_2012,sales_rate_2013,sales_rate_2014],color='r',marker='*')
ax1.set_xlabel('年份')
ax1.set_ylabel('销售额')
ax2.set_ylabel('增长率')
plt.title('销售额与增长率')

3.各个地区分店的销售额

首先按照Market字段进行分组数据,查看一下整体不同地区分店2011-2014总销售额的占比

  • 设置绘图参数
import matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['figure.dpi']=200data['Market']
  • 绘制饼图
# 饼图\
market_sales=data.groupby(by='Market')['Sales'].sum()# market_sales
# plt.figure(figsize=(3,3))
plt.pie(market_sales,labels=market_sales.index,autopct='%.1f%%')

为了能更清晰的了解各地区店铺的经营状况,对各地区每一年的销售额进行分析

  • 按照地区、年份分组
market_year=data.groupby(by=['Market','year'],as_index=False)['Sales'].sum()
print(market_year)
  • 生成透视表并绘图
market_year_pivot=pd.pivot_table(market_year,index=['Market'],columns=['year'],values='Sales'
)
print(market_year_pivot)
market_year_pivot.plot(kind='bar',title='各地区每年的销售额情况')

销售淡旺季分析:根据超市的整体销售额情况和不同类型产品在不同地区的销售情况,在对每年每月的销售额进行分析

  • 根据种类、地区进行分组
category_market=data.groupby(by=['Category','Market'],as_index=False)['Sales'].sum()
category_market
  • 生成数据透视表并绘图
category_market_pivot=pd.pivot_table(category_market,index='Market',columns='Category',values='Sales'
)
print(category_market_pivot)
category_market_pivot.plot(kind='bar',title='不同地区不同种类销售情况')
  • 生成月份列,并对年份、月份进行分组
data['month']=data['OrderDate'].dt.monthyear_month=data.groupby(by=['year','month'],as_index=False)['Sales'].sum()
year_month
  • 生成数据透视表并绘图
year_month_pivot=pd.pivot_table(year_month,index='month',columns='year',values='Sales')
plt.figure(figsize=(2,2))
year_month_pivot.plot(title='销售淡旺季折线图')

4.新老客户数

分析新老用户的意义就在于:通过分析老用户,来确定企业的基础是否稳固,是否存在被淘汰的危机;通过分析新用户,来衡量企业的发展是否顺利,是否有更大的扩展空间。 
根据该企业的新老客户分布,从而对超市客户维系健康状态进行了解。在分析之前需要定义一下新客户,将只要在该超市消费过客户就定义为老客户,反之为新客户。由于 2011年的数据为起始数据,根据定义大部分客户皆为新用户,其数据没有分析价值。

  • 删除重复数据,并根据年份、月份分组
customer=data.drop_duplicates(subset='CustomerID')
# .groupby(by=['year','month']).count()
customer_new=customer.groupby(by=['year','month'],as_index=False)['CustomerID'].count()customer_new
  • 生成数据透视表,并绘制图形
customer_new_pivot=pd.pivot_table(customer_new,index='month',columns='year',values='CustomerID')
print(customer_new_pivot)
customer_new_pivot.plot(title='2011-2014每月新客户数量')

三、使用工具、数据源

正常分析流程需要根据图形撰写分析报告,这篇文章我主要讲解代码,所以不多赘述。

  1. 工具:anaconda软件中的jupyter Notebook,使用pycharm软件也可以,只是数据分析绘图这些,使用jupyter绘图更方便。
  2. 数据源在我的资源里,大家需要可以自行下载。

有什么问题欢迎大家来问哦!

python电商案例分析项目相关推荐

  1. 跨境电商案例分析:他投资3万美元卖爆款手表,年入2.28亿!

    增长黑盒备用号,欢迎关注~ 大号出现了一些小意外被屏蔽,感谢各位朋友关心~ 为了以防万一,我们新建了两个公众号,一个是[增长黑盒精选],另一个是本号[增长黑盒Growthbox]备用,欢迎大家关注! ...

  2. 电商大数据项目(二)-推荐系统实战之实时分析以及离线分析

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  3. 《Spark商业案例与性能调优实战100课》第15课:商业案例之纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解

    <Spark商业案例与性能调优实战100课>第15课:商业案例之纯粹通过DataSet进行电商交互式分析系统中各种类型TopN分析实战详解

  4. 电商大数据项目-推荐系统实战(一)

    电商大数据项目-推荐系统实战(一)环境搭建以及日志,人口,商品分析 https://blog.51cto.com/6989066/2325073 电商大数据项目-推荐系统实战之推荐算法 https:/ ...

  5. 【电商系统】—项目缺陷管理(二)

    [电商系统]-项目缺陷管理(二) 题目分析:如何做bug/缺陷管理? 答题思路 缺陷管理角色 bug处理流程图

  6. 小型电商平台的项目估算

    小型电商平台的项目估算 四.项目估算 4.1 简介 4.2 规模估算 4.2.1 代码行估算方法 4.2.2 功能点分析方法 4.3 工作量估算 4.3.1 COCOMO方法 4.3.2 基于用例的工 ...

  7. Python爬虫_案例分析(二)

    Python爬虫_案例分析(二) 一.电影天堂案例 import scrapy from scrapy_movie.items import ScrapyMovieItem class MvSpide ...

  8. Z04 - 999、Flink与电商指标分析

    初学耗时:999h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 『   因为要去见那个不一般的人,所以我就不能是一般人.』 1.Z04系列全套网盘资源: Z04系列全套 ...

  9. 基于hadoop的电商销售预测分析系统HDFS+MapReduce+springboot或springcloud+Echarts

    基于hadoop的电商销售预测分析系统 使用分布式文件存储系统HDFS+mapreduce+springboot和springcloud+Echarts实现的简单的电商销售数据预测分析系统. 主要通过 ...

最新文章

  1. What are some time-saving tips that every Linux us
  2. ps cs6 磨皮插件_PS后期磨皮插件美颜润肤如此简单,效果比DR3要好
  3. 几句话总结21种设计模式。
  4. VTK:采样函数用法实战
  5. 《Adobe Illustrator CS5中文版经典教程》—第0课0.5节使用绘图模式
  6. iBatis 2.x 和 MyBatis 3.0.x 的区别
  7. C语言高级编程:i++与++i区别
  8. 【渝粤教育】广东开放大学 演讲与口才 形成性考核 (1)
  9. 【Python CheckiO 题解】Index Power
  10. 如何让DataGrid能够在客户端点击某一行的任意位置,而触发服务端的事件(Asp.net)...
  11. [转]何时使用委托而不使用接口(C# 编程指南)
  12. linux档案与文件的的压缩与打包
  13. Hibernate中hbm.xml文件的inverse、cascade、fetch、outer-join、lazy
  14. JAVA 相关书籍推荐(全)
  15. linux 卸载opera,Ubuntu中安装Opera 55 浏览器
  16. 卸载vm15实用教程
  17. js 如何计算当年清明节日期
  18. A Lookahead Read Cache论文总结
  19. LAMP系列文章之一:泛泛而谈LAMP
  20. 鸿蒙系统是虚头,PS里如何分辨抠图用何种方法?

热门文章

  1. 模拟电子技术——本征半导体
  2. echarts实现气泡图(气泡之间不叠加)
  3. 32. 从上到下打印二叉树 Ⅰ
  4. select for update是行锁还是表锁,还真得看情况
  5. windows下oracle启动流程,windows下oracle的启动
  6. IIS tilde directory enumeration 漏洞以及解决方案
  7. ai建立使用图案_Illustrator教程:如何用AI设计各种形状图案
  8. kafka简介及应用场景、架构
  9. 【夯实Kafka知识体系及基本功】分析一下生产者(Producer)实现原理分析「原理篇」
  10. 2019辽宁公务员考试:在职行测备考计划