Python 电商平台购物数据分析,源码+数据下载;整体销售情况分析(折线图、饼图分析)

开发环境:

开发环境:Python3
工具:pandas、matplotlib.pyplot


数据来源:

数据地址:数据集
数据描述:本数据集共收集了发生在一个月内的28010条数据,
包含以下:
[‘订单编号’, ‘总金额’, ‘买家实际支付金额’, ‘收货地址’, ‘订单创建时间’, '订单付款时间 ', ‘退款金额’] 7个字段。

7个字段说明:

订单编号:订单编号
总金额:订单总金额
买家实际支付金额:总金额 - 退款金额(在已付款的情况下)。金额为0(在未付款的情况下)
收货地址:各个省份
订单创建时间:下单时间
订单付款时间:付款时间
退款金额:付款后申请退款的金额。如无付过款,退款金额为0

数据截图

在这里插入图片描述


分析目标:

1、整体销售情况

  • 订单交易数量
  • 退货订单数量
  • 退货率
  • 交易总金额
  • 成交总金额
  • 退款总金额
  • 实际成交额

2、买家地区分布(饼图)
3、支付金额时间分布(折线图)
4、销售额走势图(折线图)


代码及结果:

1、整体销售情况
def taobao_analysis(csv_path):df = pd.DataFrame(pd.read_csv(csv_path))#  id   总金额 实际支付金额  地址   订单创建时间   付款时间   退款金额df.columns = ['id', 'amount', 'paid', 'address', 'ordertime', 'paytime', 'refund']df.paytime = pd.to_datetime(df.paytime)df.ordertime = pd.to_datetime(df.ordertime)# 订单交易数量order_num = df.id.count()# 退货订单数量refund_num = df[df['refund'] > 0].refund.count()# 退货率refund_rate = round(refund_num / order_num * 100, 3)# 交易总金额amount_sum = df.amount.sum()# 成交总金额paid_sum = df.paid.sum()# 退款总金额refund_sum = df.refund.sum()# 实际成交额paymey = paid_sum - refund_sumprint('订单数量:', order_num)print('退货订单数量:', refund_num)print('退货率:{}%'.format(refund_rate))print('交易总金额:', amount_sum)print('成交总金额:', paid_sum)print('退款总金额:', refund_sum)print('实际成交额:', paymey)
结果截图:

在这里插入图片描述

2、买家地区分布(饼图)
def address_chart(df):add = df.groupby('address')['id'].count().sort_values(ascending=False)plt.rcParams['font.sans-serif'] = ['SimHei']add.plot.pie(figsize=(12,6),labels=add.index, autopct='%1.1f')plt.title('买家地区分布')plt.show()
结果截图

在这里插入图片描述

3、支付金额时间分布(折线图)
def time_chart(df):df1 = df.copy()df1['paytime'] = df1['paytime'].dt.timedf1['paytime'] = pd.to_datetime(df.paytime)plt.figure(figsize=(20,8), dpi=80)s = df1['paytime'].dt.floor('30T')df1['paytime'] = s.dt.strftime('%H:%M') + '-' + (s+pd.Timedelta(29*60,unit='s')).dt.strftime("%H:%M")timedf1 = df1.groupby('paytime')['id'].count()timedf1.drop(index='NaT-NaT', inplace=True)timedf_x = timedf1.indextimedf_y = timedf1.valuesplt.xticks(rotation=60)plt.plot(timedf_x, timedf_y)plt.show()
结果截图

在这里插入图片描述

4、销售额走势图(折线图)

def money_chart(df):df['day'] = df['ordertime'].dt.dayxx = df.groupby('day')['amount'].sum().indexyy_1 = df.groupby('day')['amount'].sum().values/10000yy_2 = df.groupby('day')['paid'].sum().values/10000yy_3 = df.groupby('day')['refund'].sum().values/10000plt.plot(xx,yy_1,label='Order Amount',color='red',marker='+')plt.plot(xx,yy_2,label='Payment Amount',color='green',marker='o')plt.plot(xx,yy_3,label='Refund Amount',color='blue',marker='.')plt.xlabel('day')plt.ylabel('money(10000yuan)')plt.show()
结果截图

在这里插入图片描述


源码及数据下载:

CSDN下载:下载地址
百度网盘下载:

链接:https://pan.baidu.com/s/1fBMX27gkvkQ4Lowu35ymQA
提取码:j43u

阿里云网盘下载:

「淘宝交易数据分析代码」,点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载,极速在线查看享用。
链接:https://www.aliyundrive.com/s/rLmKsGffw8N

CSDN下载:下载地址


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部