当前位置: 首页 > news >正文

python数据分析案例——天猫订单综合分析

前言

大家早好、午好、晚好吖 ❤ ~欢迎光临本文章

什么是数据分析

明确目的–获得数据(爬虫,现有,公开的数据)–数据预处理——数据可视化——结论

准备

环境使用:

在开始写我们的代码之前,我们要准备好运行代码的程序

  • Anaconda (python3.9)

    –> 识别我们写的代码

开发工具:

  • jupyter notebook

    –> 代码编辑功能敲代码的工具

不会安装的可以文末名片+我获取哦 😎

数据准备:

本数据集共收集了发生在一个月内的28010条数据,包含以下:

7个字段说明

订单编号:订单编号

总金额:订单总金额

买家实际支付金额:总金额 - 退款金额(在已付款的情况下)。金额为0(在未付款的情况下)

收货地址:各个省份

订单创建时间:下单时间

订单付款时间:付款时间

退款金额:付款后申请退款的金额。如无付过款,退款金额为0

分析目的

订单每个环节的转化转化率

订单成交的时间(按天)趋势(按实际成交)

订单数在地图上的分布

订单读取及处理

读取数据

import pandas as pd
df = pd.read_csv('tmall_order_report.csv',encoding='gbk')
df.head()

处理数据


缺失值

df.isnull().sum()
# 订单付款时间 有2923个缺失值,属于正常现象,说明这些单位付过款,无需处理

订单转化率-漏斗图

计算每个环节的数据

  • 将得到如下的数据:

    [[‘总订单数’, ‘28010’],

    [‘付款订单数’, ‘24087’],

    [‘到款订单数’, ‘18955’],

    [‘全额到款订单数’, ‘18441’]]

    买家实际支付金额:总金额 - 退款金额(在已付款的情况下)。金额为0(在未付款的情况下)

    退款金额:付款后申请退款的金额。如无付过款,退款金额为0

订单总笔数

付过款的订单数

key = '付款订单数'# 付款时间不为空的,表示付过款
df_payed = df[df['订单付款时间'].notnull()]dict_convs[key] = len(df_payed)len(df_payed)

到款订单数

key = '到款订单数'# 买家实际支付金额:总金额 - 退款金额(在已付款的情况下)
# 买家实际支付金额不为0的,说明订单商家收到过款
df_trans = df_payed[df_payed['买家实际支付金额'] != 0]dict_convs[key] = len(df_trans)len(df_trans)

# 漏斗图 Funnel
from pyecharts.charts import Funnel
from pyecharts import options as opts
funnel = (Funnel().add("总体转化率",[list(z) for z in zip(df_convs.index,df_convs["总体转化率"])],# 让外面的字体出现在图上面label_opts = opts.LabelOpts(position = 'inside'))# 设置系列选项,格式化输出.set_series_opts(tooltip_opts = opts.TooltipOpts(formatter = '{a}<br/>{b}:{c}%'))# 设置全局选项,添加标题.set_global_opts(title_opts = opts.TitleOpts(title = "总体转化率"))
)
funnel.render_notebook()

那么这个的话就是我们的一个漏斗图,我们可以看到天猫的一个总体转化率还是非常高的对吧

所以说像这个天猫他的一个对于商品的推荐还是做的非常不错的

单一环节转化率

# 添加单一环节转化率,每个环节除以上一环节name = '单一环节转化率'# shift(): 让整个列往下移动一个位置
# 那么移完位置之后就不可避免会出现第一个位置是空的
# 所以这里我们把第一个位置填数据
df_convs["单一环节转化率"] = df_convs['订单数'].shift().fillna(28010.0)df_convs["单一环节转化率"] = round((df_convs['订单数']/df_convs["单一环节转化率"]*100),0)
df_convs
name = '单一环节转化率'funnel = (Funnel().add(series_name = name,data_pair = [list(z) for z in zip(df_convs.index,df_convs[name])],label_opts = opts.LabelOpts(position = 'inside')).set_series_opts(tooltip_opts = opts.TooltipOpts(formatter = '{a}<br/>{b}:{c}%'))
)
funnel.render_notebook()

整体订单数趋势

# 按到款订单统计# 将订单创建时间这一字段改成时间类型的数据
df_trans['订单创建时间'] = df_trans['订单创建时间'].astype('datetime64')
# 然后让订单创建时间变成行标
df_trans=df_trans.set_index('订单创建时间')
# 最后看一下前5行
df_trans.head()
df_trans.resample('D')['订单编号'].count().index.day.astype('str').tolist()
# 重采样,时间序列的内容# 统计每天的订单数量
se_trans_month = df_trans.resample('D')['订单编号'].count()
se_trans_month


结论:

2月上半个月,企业多数未复工,快递停运,无法发货

下半个月,随着企业复工逐渐增多,订单数开始上涨

#订单平均价格
df_trans['买家实际支付金额'].mean()

销量区域分布-地理图

se_trans_map = df_trans.groupby('收货地址')['订单编号'].count()
se_trans_map
import pyecharts.options as opts
from pyecharts.charts import Map
# 展示地理分布图
map1 = (Map().add("订单数",[list(i) for i in se_trans_map.items()],'china').set_global_opts(visualmap_opts=opts.VisualMapOpts(max_=max(se_trans_map)*0.6)))
map1.render_notebook()

尾语 💝

好了,今天的分享就差不多到这里了!

完整代码、更多资源、疑惑解答直接点击下方名片自取即可。

对下一篇大家想看什么,可在评论区留言哦!看到我会更新哒(ง •_•)ง

喜欢就关注一下博主,或点赞收藏评论一下我的文章叭!!!

最后,宣传一下呀~👇👇👇更多源码、资料、素材、解答、交流皆点击下方名片获取呀👇👇👇

http://www.lryc.cn/news/66987.html

相关文章:

  • 05- redis集群模式搭建(上) (包含云服务器[填坑])
  • 【AI】YOLOV1原理详解
  • 提高APP安全性的必备加固手段——深度解析代码混淆技术
  • 想让行车记录仪协助道路病害自动化检测?可以!
  • git上传大大大文件项目好折磨人
  • java常见异常的处理方法
  • 上传图片到阿里云服务器base64 上传
  • 【致敬未来的攻城狮计划】— 连续打卡第二十六天:瑞萨RA Cortex-M 内核RA2E1 RT-Thread BSP 启蒙知识
  • 2023年5月8日-5月14日(方案C,下班UE视频教程为主)
  • 「MIAOYUN」:降本增效,赋能传统企业数字化云原生转型 | 36kr 项目精选
  • Python突破JS加密限制,进行逆向解密
  • 【Linux】exec函数族
  • OSQP二次规划求解库使用说明
  • Elasticsearch(一)
  • 深入探究Java中的枚举类型:定义、特性和应用
  • linux密码忘了?一招解决
  • 苹果mac清理软件CleanMyMac X v4.13兼容13系统,堪称Mac最好的系统清理工具
  • FPGA实现Cordic算法求解arctan和sqr(x*2 + y* 2)
  • 【最终截稿 | Springer 独立出版 | EI稳定检索】 2023年绿色建筑国际会议(ICoGB 2023)
  • Flutter常用状态管理框架及优缺点
  • Ubuntu 20.04 系统配置 OpenVINO 2022.3 环境
  • 浏览器存储技术:localStorage、sessionStorage和cookie的区别
  • MySQL中的内连接和外连接
  • node学习手册
  • Java中的JSP是什么?如何实现JSP
  • c++之函数对象和谓词
  • 《Andorid开源》greenDao 数据库orm框架
  • Android类似微信聊天页面教程(Kotlin)五——选择发送图片
  • MongoDB:Win/Linux环境安装及一键部署脚本
  • KingbaseES V8R3 集群运维系列 -- failover切换后集群自动恢复