某电商平台2016年交易数据分析

确定目标

本次分析主要是针对某电商平台的真实脱敏数据进行;
尝试数据分析从数据获取到数据分析报告撰写的整个数据分析流程。

数据清洗

将支付金额小于等于0的数据删除;
删除channelId为空的数据;
删除下单时间比支付时间晚的数据;
删除非2016年的数据;
删除prodectId为0的数据。

清洗代码如下:

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
df=pd.read_csv('./order_info_2016.csv')
df.describe()  #查看

查看数据信息

df.drop(df[df['payMoney']<=0].index,inplace=True)  #将支付金额小于等于0的数据删除

df.drop(df[df['channelId'].isnull()].index,inplace=True)  #删除channelId为空的数据

df['createTime']=pd.to_datetime(df['createTime'])
df['payTime']=pd.to_datetime(df['payTime'])
df.drop(df[df['createTime']>df['payTime']].index,inplace=True) #删除下单时间比支付时间晚的数据

df.drop(df[df['createTime'].dt.year!=2016].index,inplace=True) #删除非2016年的数据

df.drop(df[df['productId']==0].index,inplace=True) #删除prodectId为0的数据

清洗后的数据预览:
数据预览

准备分析数据

1、根据提供的数据,查看不同城市的下单量,并获取下单量最多的20个城市,绘制相应图标。

#查看不同城市的下单量,并绘制条形图
df_city = df.groupby('cityId').count().sort_values('id',ascending=False)['id'][:20]  #下单量最多的20个城市
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc',size=10) #引入字体
plt.figure(figsize=(20,10),dpi=80)  #画布
x=df_city.index
y=df_city.values
for a,b in zip(x,y):
    plt.text(a,b,b,va='bottom',ha='center',fontsize=12,bbox=dict(fc='y'))  #每个条形显示具体销量
plt.bar(x,y)
plt.title('城市/销量图',fontproperties=my_font)  
plt.xlabel('城市编号',fontproperties=my_font)
plt.ylabel('销量',fontproperties=my_font)
plt.show()

城市/销量图
2、根据商品编号(productId)进行分析

df['productId'] = df['productId'].astype('str')
df_count = df.groupby('productId').count()['id'].sort_values(ascending=False)[:20]  #销量前20的商品编号
df_sum=df.groupby('productId').sum()['payMoney'].sort_values(ascending=False)[:20]  #总销售额前20的商品编号
my_font = font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc',size=10)
x=df_sum.index
y=df_sum.values
plt.figure(figsize=(30,15),dpi=80)
for a,b in zip(x,y):
    plt.text(a,b,b,va='bottom',ha='center',fontsize=12,bbox=dict(fc='y'))
plt.bar(x,y,width=0.6)
plt.title('商品/销售额图',fontproperties=my_font)
plt.xlabel('商品编号',fontproperties=my_font)
plt.ylabel('销售额',fontproperties=my_font)
plt.show()

商品/销售额图
3、根据商品类型绘制饼图,查看不同种类商品的销量占比

df['deviceType']=df['deviceType'].astype('str')
df_type=df.groupby('deviceType').count()['id'].sort_values(ascending=False)
my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\simsun.ttc',size=10)
df_lab=df_type.index
plt.figure(figsize=(20,10),dpi=80)
patches, l_text, p_text = plt.pie(df_type.values,labels=df_lab,autopct='%1.1f%%')
plt.title('商品种类/销量图',fontproperties=my_font)
plt.legend() #显示标签
plt.show()

在这里插入图片描述
4、统计不同时间段的销量情况

df['createHour']=df['createTime'].dt.hour  #创建新列:下单时间(小时)
df_hours=df.groupby('createHour').count()['id'].sort_values(ascending=False)
x=df_hours.index
y=df_hours.values
plt.figure(figsize=(20,10),dpi=80)
for a,b in zip(x,y):
    plt.text(a,b,b,va='bottom',ha='center',bbox=dict(fc='y'),fontsize=12)
plt.bar(x,y,width=0.6)
plt.show()

按小时下单量
可以看出每天的中午12-14点和晚上19-21点为下单高峰时段,可以在这两个时间段做好推广以及保证服务器的稳定。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值