11-天猫订单数据分析

news2025/1/16 18:54:45

目录

前言

一、导入

二、使用步骤

1.数据清洗

2.对订单状况进行分析

3.每种订单数占比情况 

饼图:

 不同省份订单分析地图:

不同省份金额分析柱状图: 

散点图: 

总结


前言

天猫订单数据分析可以从多个角度进行分析,以下是一些常见的分析维度和方法:

  1. 基本统计分析:可以对订单数量、销售额、平均订单金额等进行基本统计分析,以了解整体的销售情况和趋势。

  2. 地域分析:可以根据订单的收货地址, 分析订单的地域分布情况,了解不同地区的销售情况和潜力。

  3. 时间分析:可以根据订单的下单时间、付款时间等,进行时间分析,了解不同时间段的订单量和销售额变化情况,以及不同时间段的用户行为和消费习惯。

  4. 用户行为分析:可以根据用户的购买频次、购买金额、购买种类等,进行用户行为分析,了解用户的购买习惯和偏好,以及不同用户群体的消费特征。

  5. 产品分析:可以根据产品的销售数量、销售额、销售排名等,对产品进行分析,了解产品的市场表现和受欢迎程度,进而指导产品的进一步发展和优化。

  6. 渠道分析:可以根据不同的营销渠道,如搜索引擎、社交媒体等,进行渠道分析,了解不同渠道的转化率、ROI等指标,为优化营销策略提供依据。


一、导入

import numpy as np
import pandas as pd

二、使用步骤

1.数据清洗

代码如下(示例):



data = pd.read_excel(r'C:\Users\B\Desktop\天猫订单.xlsx')
data.head()

data.info()

data.describe(include='all')

# 删除重复值
data.drop_duplicates(inplace=True)

data['星期'] = data['订单付款时间'].dt.dayofweek+1
data['小时'] = data['订单付款时间'].dt.hour
data


data['收货地址'].unique()  # 获取唯一值

data['收货地址'] = data['收货地址'].str.replace('上海','上海市')
data['收货地址'] = data['收货地址'].str.replace('重庆','重庆市')
data['收货地址'] = data['收货地址'].str.replace('北京','北京市')
data['收货地址'] = data['收货地址'].str.replace('天津','天津市')

2.对订单状况进行分析

代码如下(示例):



# 有效订单:有付款,没有退款
valid_order = data[(data['订单付款时间'].notnull()) & (data['退款金额']==0)]
valid_order



# 退款订单:有付款,有退款
refund_order = data[data['退款金额']>0]
refund_order



# 未付款订单:没有付款
unpaid_order = data[data['订单付款时间'].isnull()]
unpaid_order   # NaT not a time 时间空值  NaN  not a number 数字空值

3.每种订单数占比情况 

from pyecharts.charts import *
import pyecharts.options as opts

饼图:

pie_data = [('有效订单',len(valid_order)),('退款订单',len(refund_order)),('未付款订单',len(unpaid_order))]
pie_data




pie =(
    Pie()
    .add('订单',pie_data,
        label_opts=opts.LabelOpts(formatter='{b}:{d}%',font_size=15))
    .set_global_opts(title_opts=opts.TitleOpts(title='各订单占比分析',
                                               title_textstyle_opts=opts.TextStyleOpts(font_size=30,color='green'))
                    )
)
pie.render_notebook()

 不同省份订单分析地图:



data2 = data[data['订单付款时间'].notnull()]

# 按省份统计订单量 name='订单量'把原来的值列改列名为'订单量'
province_order_count = data2.groupby('收货地址')['订单金额'].count().reset_index(name='订单量') 



# 转成数据对
data_pair = dict(zip(province_order_count['收货地址'].tolist(),province_order_count['订单量'].tolist()))

data_pair



# 全国订单量地图

map = (
    Map()
    .add("",
    [list(x) for x in data_pair.items()],
         maptype='china',
         is_map_symbol_show=False
    )
    # 视角配置项 --- 可选项
    .set_global_opts(
        visualmap_opts=opts.VisualMapOpts(is_show=True,min_=0,max_=3100,range_color=['red','orange','yellow','green','blue','indigo','violet'])
    )
    # 设置每块的阴影 
    .set_series_opts(itemstyle_opts=opts.TextStyleOpts(shadow_color="rgba(255,255,255,0.6)",shadow_blur=20)
    )
)

map.render_notebook()

不同省份金额分析柱状图: 



province_payment = data2.groupby('收货地址')[['订单金额','实付金额','退款金额']].sum().reset_index()
province_payment



# 把单位改成万
province_payment['订单金额']= province_payment['订单金额']/10000
province_payment['实付金额']= province_payment['实付金额']/10000
province_payment['退款金额']= province_payment['退款金额']/10000
# 按订单金额进行降序排序
province_payment.sort_values(ascending=False,by='订单金额',inplace=True)



bar = (
    Bar()
    .add_xaxis(province_payment['收货地址'].tolist())
    # stack=True 柱状图堆叠  category_gap柱子间的间隙的比例
    .add_yaxis('实付金额',round(province_payment['实付金额'],2).tolist(),stack=True,category_gap='30%')
    .add_yaxis('退款金额',round(province_payment['退款金额'],2).tolist(),stack=True,category_gap='30%')
    
    .set_global_opts(
        xaxis_opts=opts.AxisOpts(name='省份',axislabel_opts={'rotate':90}),#给x轴添加名称,并旋转x轴标签
        datazoom_opts=[opts.DataZoomOpts()] # 缩放条
    )
    .set_series_opts(label_opts=opts.LabelOpts(is_show=False)) # 去掉柱状图标签
)

# 订单金额 
effect = (
    EffectScatter()
    .add_xaxis(province_payment['收货地址'].tolist())
    .add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
    .set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
# 层叠图
overlap = bar.overlap(effect)
grid = Grid()
grid.add(overlap,grid_opts=opts.GridOpts(pos_top='35%'))
grid.render_notebook()

散点图: 



effect = (
    EffectScatter()
    .add_xaxis(province_payment['收货地址'].tolist())
    .add_yaxis('订单金额',round(province_payment['订单金额'],2).tolist())
    .set_series_opts(label_opts=opts.LabelOpts(position='top'))
)
effect.render_notebook()


总结

以上只是一些常见的分析维度和方法,具体的分析内容和方法还需要根据实际情况来确定,同时要结合实际业务场景和需求,进行深入的数据分析和挖掘。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2277661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GB44495-2024 汽车整车信息安全技术要求 - V2X部分前置要求

背景 GB 44495-2024《汽车整车信息安全技术要求》中关于V2X(车与外界通信)的部分,主要关注于通信安全要求,旨在确保车辆在与外部设备进行数据交互时的信息安全。其测试大致可分为消息层(数据无异常)、应用…

[PAT 甲级] 1179 Chemical Equation (DFS)

​ 题目翻译(GPT): 1179 化学方程式 化学方程式是一种用符号和公式表示化学反应的方法,其中反应物在方程式的左侧,生成物在右侧。例如: CH₄ 2O₂ -> CO₂ 2H₂O 表示反应物为甲烷和氧气&#xff…

android分区和root

线刷包内容: 线刷包是一个完整的android镜像,不但包括android、linux和用户数据,还包括recovery等。当然此图中没有recovery,但是我们可以自己刷入一个。 主要分区 system.img 系统分区,包括linux下主要的二进制程序。 boot.img…

每日一题(五):n个正整数排列,求组合后最大数

目录 一、题目 二、题目分析 (一)明确需求 背景知识:字符串的比较与连接 1.字符串的比较 2.字符串的连接 (二)分析思路 三、将思路转换为程序 四、总结 一、题目 给定n个正整数a1,a2,……,an对这n个数进行排列,求组合后可以得到…

【STM32-学习笔记-3-】TIM定时器

文章目录 TIM定时器Ⅰ、TIM定时器函数Ⅱ、TIM_TimeBaseInitTypeDef结构体参数①、TIM_ClockDivision②、TIM_CounterMode③、TIM_Period④、TIM_Prescaler⑤、TIM_RepetitionCounter Ⅱ、定时器配置Ⅲ、定时器外部中断NVIC配置 TIM定时器 Ⅰ、TIM定时器函数 // 将定时器寄存器…

【Rust自学】12.2. 读取文件

12.2.0. 写在正文之前 第12章要做一个实例的项目——一个命令行程序。这个程序是一个grep(Global Regular Expression Print),是一个全局正则搜索和输出的工具。它的功能是在指定的文件中搜索出指定的文字。 这个项目分为这么几步: 接收命令行参数读…

新垂直电商的社交传播策略与AI智能名片2+1链动模式S2B2C商城小程序的应用探索

摘要:随着互联网技术的不断进步和电商行业的快速发展,传统电商模式已难以满足消费者日益增长的个性化和多元化需求。新垂直电商在此背景下应运而生,通过精准定位、用户细分以及深度社交传播策略,实现了用户群体的快速裂变与高效营…

【ORACLE战报】2025.1月OCP | MySQL考试

2025.1月【最新考试成绩出炉】 OCP战报 MySQL 战报 部分学员成绩及证书

九 RK3568 android11 MPU6500

一 MPU6500 内核驱动 1.1 查询设备连接地址 查看原理图, MPU6500 I2C 连接在 I2C4 上, 且中断没有使用 i2c 探测设备地址为 0x68 1.2 驱动源码 drivers/input/sensors/gyro/mpu6500_gyro.c drivers/input/sensors/accel/mpu6500_acc.c 默认 .config 配置编译了 mpu6550 …

Android JecPack组件之LifeCycles 使用详解

一、背景 LifeCycle 是一个可以感知宿主生命周期变化的组件。常见的宿主包括 Activity/Fragment、Service 和 Application。LifeCycle 会持有宿主的生命周期状态的信息,当宿主生命周期发生变化时,会通知监听宿主的观察者。 LifeCycle 的出现主要是为了…

机器学习(2):线性回归Python实现

1 概念回顾 1.1 模型假设 线性回归模型假设因变量y yy与自变量x xx之间的关系可以用以下线性方程表示: y β 0 β 1 ⋅ X 1 β 2 ⋅ X 2 … β n ⋅ X n ε y 是因变量 (待预测值);X1, X2, ... Xn 是自变量(特征)β0, β1,…

2025.1.15——二、字符型注入

一、基本操作:整理已知信息,本题为字符型注入 二、解题步骤 step 1:确认为字符型注入 键入: 1 键入:1 and 12 # 发现报错 键入:1 and 11 # 未发现报错 所以确认为字符型注入 step 2:查询…

4、dockerfile实现lnmp和elk

dockerfile实现lnmp 使用dockerfile n:nginx,172.111.0.10 m:mysql,172.111.0.20 p:php,172.111.0.30 安装配置nginx 1、准备好nginx和wordpress安装包 2、配置dockerfile 3、配置nginx主配置文件ngin…

金融项目实战 05|Python实现接口自动化——登录接口

目录 一、代码实现自动化理论及流程 二、脚本实现的理论和准备工作 1、抽取功能转为自动化用例 2、搭建环境(测试工具) 3、搭建目录结构 三、登录接口脚本实现 1、代码编写 1️⃣api目录 2️⃣script目录 2、断言 3、参数化 1️⃣编写数据存储文件:jso…

Flink链接Kafka

一、基于 Flink 的 Kafka 消息生产者 Kafka 生产者的创建与配置: 代码通过 FlinkKafkaProducer 创建 Kafka 生产者,用于向 Kafka 主题发送消息。Flink 执行环境的配置: 配置了 Flink 的检查点机制,确保消息的可靠性,支…

基于国产麒麟操作系统,通过Kubeadm离线部署Kubernetes 1.28版本

文章目录 前言一、环境准备1.主机操作系统说明2.主机硬件配置3.ansible-playbook相关目录准备4.下载离线部署包4.1. 下载kubeclt、kubeam、kubelet RPM包4.2. 下载docker安装包4.3. 下载containerd安装包4.4. 镜像包下载 二、部署流程三、部署过程1.修改hosts文件2.部署单maste…

3、docker的数据卷和dockerfile

dockerfile--------------------自定义镜像 docker的数据卷: 容器与宿主机之间,或者容器和容器之间的数据共享(目录)。 创建容器的时间,通过指定目录,实现容器于宿主机之间,或者容器和容器之…

登上Nature!交叉注意力机制 发顶会流量密码!

在深度学习领域,交叉注意力融合技术正迅速崛起,并成为处理多模态数据的关键工具。这一技术通过有效地整合来自不同模态的信息,使得模型能够更好地理解和推理复杂的数据关系。 随着多模态数据的日益普及,如图像、文本和声音等&…

网安——CSS

一、CSS基础概念 CSS有两个重要的概念,分为样式和布局 CSS的样式分为两种,一种是文字的样式,一种是盒模型的样式 CSS的另一个重要的特质就是辅助页面布局,完成HTML不能完成的功能,比如并排显示或精确定位显示 从HT…

SOME/IP协议详解 基础解读 涵盖SOME/IP协议解析 SOME/IP通讯机制 协议特点 错误处理机制

车载以太网协议栈总共可划分为五层,分别为物理层,数据链路层,网络层,传输层,应用层,其中今天所要介绍的内容SOME/IP就是一种应用层协议。 SOME/IP协议内容按照AUTOSAR中的描述,我们可以更进一步…