欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-04-03 21:15:41
...

确定目标

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

数据清洗

将支付金额小于等于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()  #查看

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

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的数据

清洗后的数据预览:
某电商平台2016年交易数据分析

准备分析数据

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()

某电商平台2016年交易数据分析
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()

某电商平台2016年交易数据分析
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()

某电商平台2016年交易数据分析
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()

某电商平台2016年交易数据分析
可以看出每天的中午12-14点和晚上19-21点为下单高峰时段,可以在这两个时间段做好推广以及保证服务器的稳定。

相关标签: 数据分析 python