订单数据分析-实战

article/2025/10/23 2:18:46

1. 京东订单数据准备

1.1 京东订单数据介绍

  • 2020年5月25日
  • 10%抽样数据
  • 大家电-家用电器-冰箱
  • 70K+

1.2 数据清洗

  1. 缺失值处理
    用户城市和省份信息有部分缺失,部分订单的订单中支付时间为空值
  2. 数据逻辑错误
  3. 格式内容一致性
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns 
from scipy import stats
from matplotlib.ticker import FuncFormatter
plt.rcParams['font.sans-serif']=['SimHei']import warnings
warnings.filterwarnings('ignore')
order = r"/Users/zhangqin/Documents/python学习/笔记整理/京东数据分析/课件/京东订单实战/course_order_d.csv"
df = pd.read_csv(order,sep='\t', encoding="utf-8", dtype=str)
#查看缺失值
df.isnull().sum().sort_values(ascending = False)

在这里插入图片描述

#转换数据类型
df["sale_qtty"] = df["sale_qtty"].astype("int")
df["sale_ord_valid_flag"] = df["sale_ord_valid_flag"].astype("int")
df["cancel_flag"] = df["cancel_flag"].astype("int")
df["self_ord_flag"] = df["self_ord_flag"].astype("int")
df['before_prefr_unit_price'] = df['before_prefr_unit_price'].astype('float')
df['after_prefr_unit_price'] = df['after_prefr_unit_price'].astype('float')
df['user_actual_pay_amount'] = df['user_actual_pay_amount'].astype('float')
df['total_offer_amount'] = df['total_offer_amount'].astype('float')
df.loc[:,'check_account_tm '] = pd.to_datetime(df.loc[:,'check_account_tm'])
df.loc[:,'sale_ord_tm'] = pd.to_datetime(df.loc[:,'sale_ord_tm'])
df.loc[:,'sale_ord_dt'] = pd.to_datetime(df.loc[:,'sale_ord_dt'])

在这里插入图片描述

#缺失值&异常值处理
df = df[df["before_prefr_unit_price"]>=288]#筛选优惠前的价格在288元以上的数据
df = df.drop_duplicates(subset=["sale_ord_id"],keep="first")#按照订单去除重复项
df["user_site_city_id"] = df["user_site_city_id"].fillna("Not Given")
df["user_site_province_id"] = df["user_site_province_id"].fillna("Not Given")
df["total_actual_pay"] = df["sale_qtty"]*df["after_prefr_unit_price"]

2. 订单数据分析的基本思路

2.1 数据监控

对于订单数据,在业务中最常见的是使用可视化报表来监测订单关键指标的变化,并在一定维度上进行下钻

数据指标维度细分
订单总量有效订单、取消订单、待支付订单
GMV(所有有效订单的总交易额)
实际销售额
客单价
商品销售数量
用户数
复购率
支付时长
数据维度具体解释
商品维度不同类目的商品、同一类目不同净值的商品…
时间维度趋势变化、节假日及特殊日期
地区维度商品偏好
用户维度用户行为、用户画像

2.2 不同图表类型的应用场景

  1. 柱状图:适用场景是二维数据集(每个数据点包括两个值:x和y),但只有一个维度需要比较,用于显示一段时间内的数据变化或显示各项数据之间的比较情况,可以很好的反映数据的差异,但是只适用于规模不太大的数据
  2. 条形图:和柱状图类似,但是能更好的把重点放在选哟比较的维度上
  3. 堆积型的柱状图和条形图:不仅可以直观的看出每个系列的值,还能反映出系列的总和,尤其是当需要看某一单位的综合以及各系列值的比重时最适合
  4. 饼图:显示各项的大小与各项总和的比例。适用于简单的占比比例图,在不要求数据精细的情况下使用。
  5. 折线图:适合二维的大数据集,还是和多个二维数据集的比较。容易反映出数据变化的趋势。
  6. 散点图和气泡图:显示若干数据系列中各数值之间的关系,类似XY轴,判断两变量之间是否存在某种关联。散点图适用于三维数据集但是只需要比较其中的两个维度,如果再增加一个维度就可以使用气泡图
  7. 热力图:以特殊高亮的形式显示访客热衷的页面区域和访客所在的地理区域的图示,常用于地图和网站分析
  8. 漏斗图:体现数据的转化关系

3. 订单数据分析的具体操作

3.1 宏观分析

  1. 宏观把握订单的总体特征
##取消订单数
df1 = df.groupby(["cancel_flag"],as_index=False)["sale_ord_id"].count()
df1["percent"] = df1["sale_ord_id"]/df["sale_ord_id"].count()
fig = plt.figure(figsize=(6,8))
explode = (0,0.1)
plt.style.use("ggplot")
plt.pie(df1["percent"],labels=["未取消","取消"],autopct="%1.2f%%",explode=explode)
plt.title("取消订单总揽")
plt.show()

在这里插入图片描述

#有效订单数
df2 = df[(df["sale_ord_valid_flag"]==1)&(df["cancel_flag"]==0)&(df["before_prefr_unit_price"]!=0)]
order_valid = df2["sale_ord_id"].count()#有效订单总数
order_paid = df2["sale_ord_id"][df2["user_actual_pay_amount"]!=0].count()#支付订单数
order_unpaid = df2["sale_ord_id"][df2["user_actual_pay_amount"]==0].count()
lables = ["支付","未支付"]
data =[order_paid,order_unpaid]
explode = (0,0.1)
fig = plt.figure(figsize=(6,8))
plt.pie(data,labels=lables,autopct="%1.2f%%",explode=explode)
plt.title("有效订单总揽")
plt.show()

在这里插入图片描述

  1. 订单价格的累积分布折线图:订单价格降序排列,计算累计人数,计算累计人数占比,绘制折线图
#订单价格分布
price_series = df2["after_prefr_unit_price"]
price_series_num = price_series.count()
hist,bin_edges = np.histogram(price_series,bins=80)#生成直方图函数
hist_sum = np.cumsum(hist)
hist_per = hist_sum/price_series_num
bin_edges_plot = np.delete(bin_edges,0)
plt.figure(figsize=(20,8),dpi=80)
plt.xlabel("订单价格")
plt.ylabel("百分比")
def to_percent(temp,position):return "%1.0f"%(100*temp)+"%"
plt.gca().yaxis.set_major_formatter(FuncFormatter(to_percent))
#是坐标轴设置为百分比函数
plt.plot(bin_edges_plot,hist_per,color="blue")

在这里插入图片描述

3.2 微观分析

  1. 从时间维度来对订单数据进行拆分:有效订单量、人均有效订单量、客单价、平均订单价格
  2. 大型活动一般在0点、20-24点时会有爆发,因此具体分析0时价格累积分布折线图和20时价格累积分布折线图
  3. 对比0时与其他时间的优惠订单数和订单价格
  4. 从地区维度对订单数据进行拆分:比较各省份的订单数、客单价
  5. 从地区维度和品牌维度结合,地区对品牌的特殊偏好,单价最贵的top4订单占比、各个品牌的平均占有价格和市场占有率

http://chatgpt.dhexx.cn/article/x8lo1quJ.shtml

相关文章

话单数据完整流程

原始数据__解析_____>>>解析后的数据___入库____>>>汇总的数据 1.原始数据 上游中兴的原始数据,在远程桌面Winscp软件中查看。丢失了下游也没法补充采集。得等上游补充采集后下游才能解析。当原始数据存在,而话单数据显示红点&…

话单分析账单分析行踪分析三合一数据分析

这里写自定义目录标题 欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants 创建一个自定义列表如何创建一个…

Office Tool Plus(安装visio)

说明:需要提前卸载原先的Office(Word、PPT、Excel等) 一、Office Tool Plus官网 https://otp.landian.vip/zh-cn/download.html 二、下载Office Tool Plus 百度网盘链接(Office Tool Plus安装包) 链接:…

FFmpeg音频解码-音频可视化

最近在做一个音频可视化的业务,网上有Java层的实现方法,但是业务需要用C实现,从原理出发其实很简单,先对音频进行解码,再计算分贝。这比把大象放进冰箱还简单。本文从音频可视化的业务为依托,以FFmpeg为基础…

基于FFmpeg的视频播放器之七:音频解码

一.流程 音频解码的流程和视频解码几乎一样,最大的区别是解码后需要进行重采样。因为解码出的AVSampleFormat格式是AV_SAMPLE_FMT_FLTP(float, planar),该格式无法直接使用SDL进行播放,需要转换成SDL支持的AV_SAMPLE_FMT_S16(signed 16 bits)格式。关于重采样,详见下篇…

2020手机音频解码芯片_2020杰理音频芯片全解析,14款音频产品代表作拆解汇总...

珠海市杰理科技股份有限公司,成立于2010年。杰理科技主要从事射频智能终端、多媒体智能终端等系统级芯片(SoC)的研究、开发和销售。 杰理科技的芯片产品主要应用于AI智能音箱、蓝牙音箱、蓝牙耳机、智能语音玩具等物联网智能终端产品,下游应用产品市场十分广泛和巨大。 杰理科…

音频编解码原理

实例说明 音频编解码常用的实现方案有三 种。 第一种就是采用专用的音频芯片对 语音信号进行采集和处理,音频编解码算法集成在硬件内部,如 MP3 编解码芯片、语音合成 分析芯片等。使用这种方案的优点就是处理速度块,设计周期短;缺…

基于STM32音频解码MP3——vs1053

基于正点原子教程 VS1053简介: 1.该模块采用VS1053B 作为主芯片 2.支持:MP3/WMA/OGG/WAV/FLAC/MIDI/AAC 等音频格式的解码 3.支持:OGG/WAV 音频格式的录音,支持高低音调节以及 EarSpeaker 空间效果设置 模块如图所示正点原子 AL…

ijkplayer音频解码播放架构分析

ijkplayer是一款跨平台播放器,支持Android与iOS播放,音频解码默认使用FFmpeg的avcodec软解。Android端播放音频可以用OpenSL ES和AudioTrack,而iOS端播放音频默认使用AudioQueue。 一、iOS音频解码播放 采用pipeline形式创建音频播放组件&a…

HIFI音频解码芯片ES9023

现在的HiFi播放器、解码耳放设备越来越多,推陈出新的速度也越来越快。各家厂商也都对产品进行了卖点细分,把新款旗舰级解码芯片拎出来宣传。美国ESS公司推出的ES9038Pro芯片大家都早已耳熟能详。 美国ESS系列芯片拥有行业高标准的信噪比 DNR(…

DP7398:国产兼容替代CS4398立体声24位/192kHz音频解码芯片

目录 DP7398简介结构框图芯片特性 应用领域 DP7398简介 DP7398是立体声 24 位/192kHz 数模转换芯片。该D/A系统包括数字去加重、半分贝步长音量控制、ATAPI 通道混频、可选择的快速和慢速数字插补滤波器和过采样多位增量 Sigma-Delta 调制器;该调制器采用失调整形技…

ijkplayer 音频解码线程

在ijkplayer 读线程中提到,函数stream_component_open()中的decoder_start()会创建音频解码线程,来看解码线程audio_thread()的主要代码 static int audio_thread(void *arg) {...do {...if ((got_frame decoder_decode_frame(ffp, &is->auddec…

ES9023音频解码芯片原理及应用简介

一般来说,音频解码器分为两类,一类是用于Hi-Fi听音的纯音频解码器,即指把CD机等数字音源器材一分为二后,去掉转盘(驱动光碟旋转读盘)的部分。 纯音频解码器的主要作用是把读取的数字音频信息转…

iOS的音频解码详解

在iOS平台上,所有的音频框架底层都是基于AudioUnit实现的,较高层次的音频框架包括: Media Player、 AV Foundation、OpenAL和Audio Toolbox,这些框架都封装了AudioUnit,然后提供了更高层次的API(功能更少,职责更单一的接口)。 当开发者在开发音视频相关产品的时候,如果…

FFmpeg音频解码流程详解及简单demo参考

本文主要讲解FFmpeg的音频解码具体流程,API使用。最后再以一个非常简单的demo演示将一个mp3格式的音频文件解码为原始数据pcm文件。 本文主要基于FFmpeg音频解码新接口。 一、FFmpeg音频解码API调用流程图 API接口简单大体讲解如下: av_register…

ffmpeg 音频解码一

1. ffmpeg 视频解码一 2. ffmpeg 视频解码二 3. ffmpeg 音频解码一 4. ffmpeg 音频解码二 5. ffmpeg 音视频解码 6. ffmpeg 视频编码一 7. ffmpeg 视频编码一(精简版) 8. ffmpeg 视频编码二(基于 libswscale 转换视频) 9. ffmpeg …

MP3音频解码详细过程(二)

最近做了无人机的音频解码,二周内从无任何音频基础到输出PCM数据码流到无人机上可以实现播报功能,其中遇到了许多莫名的坑,谨以此篇记录心得。也算交个作业。 架构设计思路:由usart 实时传输mp3音频码流,STM32F446 将…

低延迟音频中的音频解码优化策略

文章目录 前言音频播放举个例子:PortAudio回调函数解码与播放 优化策略1. 一次性读取音频到内存中2. MMAP3. 音频转码,再接 MMAP4. 解码缓冲 总结参考资料 前言 延迟是指信号在系统中传输所需的时间。下面是常见类型的音频应用相关延迟时间:…

音频编解码基础

1. PCM PCM 脉冲编码调制是Pulse Code Modulation的缩写。脉冲编码调制是数字通信的编码方式之一。主要过程是将话音、图像等模拟信号每隔一定时间进行取样,使其离散化,同时将抽样值按分层单位四舍五入取整量化,同时将抽样值按一组二进制码来…

音视频解码流程详解

1、解码整体流程 (1) 音频解码整体流程 (2)视频解码整体流程 2、FFmpeg音视频解码详细流程 3、关键数据结构 AVCodecParser:⽤于解析输⼊的数据流并把它分成⼀帧⼀帧的压缩编码数据。⽐较形象 的说法就是把⻓⻓的⼀…