数据说明

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

注意:'收货地址 '和’订单付款时间 '字段表头的末尾含有空格

数据字段说明

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

导入包

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
# os就是提供了一些方便使用操作系统相关功能的函数。https://docs.python.org/zh-cn/3.7/library/os.html
import os
# 通过警告过滤器进行控制是否发出警告消息, 代码: import warnings warnings.filterwarnings('ignore') 这样就可以忽略警告消息了
import warnings
warnings.filterwarnings('ignore')

导入数据

df = pd.read_csv('./tmall_order.csv',encoding = 'gbk')
df


查看整体数据的基本信息

df.info()

数据清洗

数据本身比较规范,不需要太多处理

# 将字段名称中空格去掉,规范字段名称
df=df.rename(columns={'收货地址 ':'收货地址','订单付款时间 ':'订单付款时间'})
df.columnsdf.duplicated().sum()    #检查有多少重复值df.isnull().sum()      #缺失值

统计信息

1、总订单数

# dict() 函数用于创建一个字典。
dict_convs = dict()key = '总订单数'
dict_convs[key] = len(df)
len(df)

2、付款订单数

key = '付款订单数'
# 付款时间不为空的,表示付过款
# pandas的notnull函数,用于返回非空值的集合
df_payed = df[df['订单付款时间'].notnull()]
dict_convs[key] = len(df_payed)
df_payed

3、到款订单数

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

4、全额到款订单数

key = '全额到款订单数'
# 在付款的订单中,退款金额为0的,说明没有退款,表示全额收款
df_trans_full = df_payed[df_payed['退款金额'] == 0]
dict_convs[key] = len(df_trans_full)
#print(len(df_trans_full))
dict_convs

# Pandas Series.to_frame()函数用于将系列对象转换为DataFrame
df_convs = pd.Series(dict_convs,name = '订单数').to_frame()
df_convs

a = df_convs.loc[:'到款订单数','订单数']
a
b = df_convs.loc['付款订单数':'全额到款订单数','订单数']
b

5、添加总体转化率

拷贝一份数据再做进一步处理,防止原始数据

df_convs1 = df_convs.copy()
df_convs1
# 添加总体转化率,每个环节除以总订单数
name = '总体转化率'
total_convs = df_convs['订单数']/df_convs.loc['总订单数','订单数']*100 # 计算转化率
df_convs[name] = total_convs.apply(lambda x : round(x,0))
df_convs# 函数格式为:apply(func,*args,**kwargs)
# 用途:当一个函数的参数存在于一个元组或者一个字典中时,用来间接的调用这个函数,并肩元组或者字典中的参数按照顺序传递给参数
# 将计算的百分比保留0个小数 round(x,[n]) 四舍五入 n保留小数部分个数

6、单一环节转化率

单一环节转化率,每个环节订单数 / 上一环节订单数

生成订单 > 客户付款

df_convs.loc['付款订单数','订单数']/df_convs.loc['总订单数','订单数']*100

客户付款 > 商家收款

df_convs.loc['到款订单数','订单数']/df_convs.loc['付款订单数','订单数']*100

商家收款 > 商家全额收款

df_convs.loc['全额到款订单数','订单数']/df_convs.loc['到款订单数','订单数']*100

总体订单趋势

# 按到款订单统计
df_trans['订单创建时间'] = df_trans['订单创建时间'].astype('datetime64')
df_trans=df_trans.set_index('订单创建时间')
#print(df_trans.head(1))
# # 【量化分析】Resample https://blog.csdn.net/weixin_42223090/article/details/103044619
se_trans_month = df_trans.resample('D')['订单编号'].count()
#print(se_trans_month)
se_trans_month.plot()
plt.show()


该图表示2020年二月每一天的订单量(按到款订单统计)

销售区域分布统计

# 销售区年域分布统计
from pylab import mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']
se_trans_map = df_trans.groupby('收货地址')['收货地址'].count().sort_values(ascending = False)
plt.figure(dpi = 100)
se_trans_map.plot(kind = 'bar')
plt.show()

由于对数据背景信息不清晰所以无法做出进一步分析,只能针对数据本身作出简单分析,适合作为Python 练手项目

源码及相关资源文件:点这里

商品销售订单综合分析相关推荐

  1. HH SaaS电商系统的销售订单毛利润模块设计

    HH SaaS电商系统的销售订单利润分析,仅是简单分析供运营人员参考而已,所以订单生成后就自动根据商品成本价和实际交易价生成利润表,而不需要等到订单归档后才生成. 销售子单的毛利润=最终交易总额-成本 ...

  2. 用mysql建销售订单主表_mysql订单表如何设计?

    mysql订单表如何设计? 商品表和订单表 . 通过一个表来关联. 那删除了商品,相关联的订单表如何显示出这个已经删除的商品? 订单表需要冗余商品名.商品编号.价格等基本信息. 不能只保存一个商品主键 ...

  3. [置顶]生鲜配送管理系统_升鲜宝V2.0 销售订单汇总_采购任务分配功能_操作说明...

    做好生鲜供应链系统,要注意三个方面,1.分拣 2 采购  3 库存,市面上做的比较成熟的功能,还是分拣这一块(按客户分拣.按订单分拣.按商品分类分拣.按商品分拣.按线路分拣.客户自由组合分拣)[下篇文 ...

  4. C语言程序设计-商品销售管理系统

    第一部分:引言 在这个信息发展的时代,电脑普及.互联网的迅速发展,绝大部分的进程从单一的人工管理上升到电脑智能管理.如今由于顾客量增多,商品出入时间的广泛,商场收益增多,仅仅依靠手写的老式输入记账法, ...

  5. 旺店通·企业奇门与用友BIP旺店通销售出库单对接销售订单

    通过集成平台可视化的配置系统集成对接 源系统平台:旺店通·企业奇门 源系统接口: 查询销售出库单wdt.stockout.order.query.trade 目标系统平台: 用友BIP 目标系统接口: ...

  6. 大数据分析项目实战--天猫订单综合分析

    天猫订单综合分析 分析订单转化率.销量趋势.地域分布统计等. 文章目录 天猫订单综合分析 一.数据背景 二.分析目的 三.读取数据 导入相关包 读取并查看数据 四.处理数据 规范字段名称 重复值与缺失 ...

  7. 商品销售统计系统java_IMS: 基于Java实现的InventoryManagementSystem进销存管理系统

    IMS-进销存管理系统 基于 Java 实现的进销存管理系统(Inventory Management System) 项目结构 系统功能设计 进货管理(Stock-In) 进货入库(StockIn) ...

  8. 报表练习题:销售订单打印的相关说明

    报表练习题:销售订单打印 一.此练习的目的在于帮助同学们掌握: 1.1.如何从界面查数据来源(表或视图) 1.2.如何从界面查"界面字段对应的数据库字段" 1.3.初步掌握EBs标 ...

  9. python 基于tkinter商品销售系统

    苹果手机商店信息管理系统 在信息时代的今天,计算机以其快速,准确的处理功能渗透在我们周围的方方面面,同时随着网络技术和软件技术的飞速发展,当今社会也正快速向信息化时代前进,信息系统的作用也越来越大,商 ...

最新文章

  1. linux驱动双摄像头,详解linux 摄像头驱动编写
  2. 【转】01.Dicom 学习笔记-DICOM C-Store 消息服务
  3. MySQL可运行在不同的操作系统下_不同操作系统下的mysql数据库同步
  4. 最优化读书笔记R(一)
  5. authorization 传 就跨域_headers中添加允许token,客户端跨域请求问题
  6. java映射的概念_Java之路:映射(Map)
  7. Android视频播放器没声,Windows/Android/iOS全平台支持的视频播放器EasyPlayerPro,iOS版播放无音频问题如何解决?...
  8. 传奇3单机服务器怎么修改器,自己是GM并架设了传奇3单机版,如何改变装备属性?...
  9. 《德鲁克管理思想精要》读书笔记3 - 管理的新范式?
  10. 宝塔linux webshell提权,linux提权 Root权限WebShell提权
  11. 高中python教程_杭师大顶级初高中Python课程师训,酷哥优秀教师授课获赞!
  12. 数据获取与处理(以CV任务为主)
  13. vue判断身份证是否合法
  14. 如何批量OCR识别各类票据关键信息,导出为结构化格式数据
  15. js 实现繁体和简体之间的转换
  16. Linux查看所有子文件夹及文件的数量
  17. 教你代码实现抢红包功能
  18. GitHub官方App正式推出了,小伙伴们确定不下载一个吗?
  19. 一个很Nice的Android Banner轮播图库
  20. debian安装git 下载belle-sip

热门文章

  1. 看操作系统是x84还是x64啊
  2. SAP中总账科目行项目不显示的处理方法
  3. 【区块链】发布一个纯Python实现的EOSIO WAX SDK
  4. 海量服务实践──手 Q 游戏春节红包项目设计与总结(上篇)
  5. php icon素材,Feather Icon - 简单漂亮的免费开源图标库
  6. 查看git暂存区有哪些文件
  7. 椭圆抛物面matlab程序,椭圆抛物面画法.pdf
  8. tensorflow的数据读取 tf.data.DataSet、tf.data.Iterator
  9. android图形计算器,Desmos图形计算器
  10. JavaScript核心Web APIs