python电商案例分析项目

目录

一、数据清洗

1.导入模块、数据

2.信息

二、分析过程

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

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

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

4.新老客户数

三、使用工具、数据源


一、数据清洗

1.导入模块、数据

import pandas as pd

data=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 plt

fig=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 plt

plt.rcParams['font.sans-serif']=['SimHei']
plt.rcParams['axes.unicode_minus']=False
plt.rcParams['figure.dpi']=200

data['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.month

year_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,开发语言,大数据,数据分析)