13-电商数据分析

news2025/1/17 12:11:55


前言

import pandas as pd

import numpy as np


一、数据清洗


data = pd.read_csv(r'C:\Users\B\Desktop\dataset.csv',encoding='gbk')
data.head()

data.columns = ['行编号','订单ID','订单日期','发货日期','发货模式','客户ID','客户姓名','客户类别','客户所在城市','客户所在州','客户所在国家','邮编','商店所属区域','商店所属州','产品ID','产品类别','产品子类别','产品名称','售价','销售量','折扣','利润','发货成本','订单优先级']
data.columns 

data.isnull().mean()

# 1) 日期类型转换
data['发货日期'] = pd.to_datetime(data['发货日期'])
data['订单日期'] = pd.to_datetime(data['订单日期'])

# 计算时间差
data['发货秒数'] = (data['发货日期']- data['订单日期']).dt.total_seconds()
data.head()

data.describe(include='all')

# 基于索引删除
data.drop(index=data[data['发货秒数']<0].index,inplace=True)

data.drop_duplicates('行编号',inplace=True)

# 发货模式
data['发货模式'].mode()

data['发货模式'].fillna(value=data['发货模式'].mode()[0],inplace=True)
data.drop(columns='邮编',inplace=True)


# 把折扣>1的,替换为空值
data['折扣'] = data['折扣'].mask(data['折扣']>1,None)
data['折扣'].isnull().sum()



# 把折扣为空值的用平均值填充
data['折扣'].fillna(value= round(data['折扣'].mean(),2),inplace=True)

# 去重
data.duplicated().sum()


# 订单日期拆分
data['下订单年'] = data['订单日期'].dt.year
data['下订单月'] = data['订单日期'].dt.month
data['下订单季度'] = data['订单日期'].dt.to_period('Q')

二、数据分析

1.每年销售额的增长情况

代码如下(示例):

data['销售额'] = data['销售量']*data['售价']
data.head()

sales_year = data.groupby(by='下订单年')['销售额'].sum()
sales_year 

# 增长率
sale_rate_12 = (sales_year[2012]/sales_year[2011]) -1
sale_rate_13 = (sales_year[2013]/sales_year[2012]) -1
sale_rate_14 = (sales_year[2014]/sales_year[2013]) -1

# 把上面的增长率变成百分比
sale_rate_12_label = "{:.2%}".format(sale_rate_12)
sale_rate_13_label = "{:.2%}".format(sale_rate_13)
sale_rate_14_label = "{:.2%}".format(sale_rate_14)

# 保存到表格里
sales_rate = pd.DataFrame(data= {
    '年销售额':sales_year.values.tolist(),
    '年订单增长率':[0,sale_rate_12,sale_rate_13,sale_rate_14],
    '订单增长百分率':[0,sale_rate_12_label,sale_rate_13_label,sale_rate_14_label]
},index=sales_year.index.tolist())
sales_rate



import matplotlib.pyplot as plt

# 中文显示 
plt.rcParams['font.family'] = 'SimHei'
plt.rcParams['font.size'] = 13
# 设置风格
# plt.style.use('ggplot')

x = [str(value) for value in sales_rate.index.tolist()]
y1 = sales_rate['年销售额']
y2 = sales_rate['年订单增长率']

fig = plt.figure(figsize=(12,6))
# 新建子图
ax1 = fig.add_subplot(1,1,1)
ax2 = ax1.twinx()  # 共享x轴
ax1.bar(x,y1,color='blue',alpha=0.6,label='年销售额')
ax2.plot(x,y2,color='r',alpha=0.6,linewidth=3,markersize='10',marker='*',label='年增长率')

# y轴标签
ax1.set_ylabel('年销售额(元)')
ax2.set_ylabel('年增长率')

ax1.legend(loc='upper right',bbox_to_anchor=(1.2,1))
ax2.legend(loc='upper right',bbox_to_anchor=(1.2,1.05))
plt.show()


2.各个地区分店的销售额

代码如下(示例):

sales_area = data.groupby('商店所属区域')['销售额'].sum()
sales_area

sales_area.plot(kind='pie',autopct='%1.1f%%',title='各分店的总销售额情况',fontsize=15,figsize=(8,8))

# 结论:APAC店销售额占比最大,达29.6%;其次是EU,占比是23.9%。


3.各地区每年销售额 



sale_area2 = pd.pivot_table(data,index='商店所属区域',columns='下订单年',values='销售额',aggfunc='sum')
sale_area2 

sale_area2.plot(kind='bar',title='2011年-2014年各区销售额情况',figsize=(15,6),fontsize=15)

sale_area2.plot(title='2011年-2014年各区销售额情况',figsize=(15,6),fontsize=15)

4.销售淡旺季 

sales_year_month = pd.pivot_table(data,index='下订单月',columns='下订单年',values='销售额',aggfunc='sum')
sales_year_month

sales_year_month.plot(figsize=(10,6),fontsize=15).legend(fontsize=15)


总结

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

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

相关文章

【Unity-Game4Automation PRO 插件】

Game4Automation PRO 插件 是一个用于 Unity 引擎 的工业自动化仿真工具&#xff0c;它提供了对工业自动化领域的仿真和虚拟调试支持&#xff0c;特别是在与工业机器人、生产线、PLC 系统的集成方面。该插件旨在将工业自动化的实时仿真与游戏开发的高质量 3D 可视化能力结合起来…

element select 绑定一个对象{}

背景&#xff1a; select组件的使用&#xff0c;适用广泛的基础单选 v-model 的值为当前被选中的 el-option 的 value 属性值。但是我们这里想绑定一个对象&#xff0c;一个el-option对应的对象。 <el-select v-model"state.form.modelA" …

mybatis延迟加载、缓存

目录 一、所需表 二、延迟加载 1.延迟加载概念 2.立即加载和延迟加载的应用场景 3.多对一延迟加载查询演示 (1)实体类 User Account (2)AccountMapper接口 (3)AccountMapper.xml (4)UserMapper接口 (5)UserMapper.xml (6)在总配置文件(mybatis-config.xml)中开启延…

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤

VIVADO FIFO (同步和异步) IP 核详细使用配置步骤 目录 前言 一、同步FIFO的使用 1、配置 2、仿真 二、异步FIFO的使用 1、配置 2、仿真 前言 在系统设计中&#xff0c;利用FIFO&#xff08;first in first out&#xff09;进行数据处理是再普遍不过的应用了&#xff0c…

一、1-2 5G-A通感融合基站产品及开通

1、通感融合定义和场景&#xff08;阅读&#xff09; 1.1通感融合定义 1.2通感融合应用场景 2、通感融合架构和原理&#xff08;较难&#xff0c;理解即可&#xff09; 2.1 感知方式 2.2 通感融合架构 SF&#xff08;Sensing Function&#xff09;&#xff1a;核心网感知控制…

某政务行业基于 SeaTunnel 探索数据集成平台的架构实践

分享嘉宾&#xff1a;某政务公司大数据技术经理 孟小鹏 编辑整理&#xff1a;白鲸开源 曾辉 导读&#xff1a;本篇文章将从数据集成的基础概念入手&#xff0c;解析数据割裂给企业带来的挑战&#xff0c;阐述数据集成的重要性&#xff0c;并对常见的集成场景与工具进行阐述&…

【MySQL】使用C语言链接

&#x1f308; 个人主页&#xff1a;Zfox_ &#x1f525; 系列专栏&#xff1a;MySQL 目录 一&#xff1a;&#x1f525; MySQL connect &#x1f98b; Connector / C 使用&#x1f98b; mysql 接口介绍&#x1f98b; 完整代码样例 二&#xff1a;&#x1f525; 共勉 一&#…

《Java核心技术II》并行流

并行流 从集合中获取并行流&#xff1a;Stream paralleWords words.parallelStream(); parallel方法将任意顺序流转换为并行流&#xff1a;Stream paralleWords Stream.of(wordArray).parallel(); 以下是不好的示范&#xff0c;假设对字符串的所有短单词计数&#xff1a; …

【Rust自学】13.2. 闭包 Pt.2:闭包的类型推断和标注

13.2.0. 写在正文之前 Rust语言在设计过程中收到了很多语言的启发&#xff0c;而函数式编程对Rust产生了非常显著的影响。函数式编程通常包括通过将函数作为值传递给参数、从其他函数返回它们、将它们分配给变量以供以后执行等等。 在本章中&#xff0c;我们会讨论 Rust 的一…

ETW HOOK[InfinityHook]技术解析

文章目录 概述分析过程参考资料 概述 ETW是操作系统为了对系统调用、异常等信息做了一个日志操作&#xff0c;本质就是在进行调用这些中断、异常、系统调用时会走向这个代码函数区域日志保存的功能。而ETW HOOK就是在驱动层微软的PatchGuard并未对其做到很好的检测&#xff0c…

码编译安装httpd 2.4,测试

下载链接&#xff1a;https://dlcdn.apache.org/httpd/httpd-2.4.62.tar.gz [rootopenEuler-1 ~]# yum install gcc gcc-c make -y [rootopenEuler-1 ~]# ll /root total 9648 -rw-------. 1 root root 920 Jan 10 17:15 anaconda-ks.cfg -rw-r--r-- 1 root root 9872432…

步入响应式编程篇(一)

响应式编程 为什么要有响应式编程&#xff1f;响应式编程的用法Flow api的用法处理器 为什么要有响应式编程&#xff1f; 传统编码&#xff0c;操作流程常见的是命令式编程范式&#xff0c;如对于一个请求或操作来说&#xff0c;都是串行执行&#xff0c;直到异常或执行结束&a…

C++—18、C++ 中如何写类

一、类的功能阐述 今天我们将用目前学到的类的基础知识从头开始编写一个类。只编写一个基本的Log类&#xff0c;来演示到目前为止我们学过的一些基本特性。随着接下来的学习你会看到从一个类的基本版本到一个更高级版本的过程和区别。高级版本可以做同样的事情&#xff0c;但可…

SW - 查看装配图中的零件的全路径名称

文章目录 SW - 查看装配图中的零件的全路径名称概述笔记END SW - 查看装配图中的零件的全路径名称 概述 装配图中&#xff0c;如果本机有多个不同版本的同名零件(e.g. v1/p1零件, v2/p1零件)&#xff0c;在装配图中想确认是哪个版本的零件。 如果编辑错了文件&#xff0c;或者…

【开源分享】nlohmann C++ JSON解析库

文章目录 1. Nlohmann JSON 库介绍2. 编译和使用2.1 获取库2.2 包含头文件2.3 使用示例2.4 编译 3. 优势4. 缺点5. 总结参考 1. Nlohmann JSON 库介绍 Nlohmann JSON 是一个用于 C 的现代 JSON 库&#xff0c;由 Niels Lohmann 开发。它以易用性和高性能著称&#xff0c;支持 …

神经网络基础-正则化方法

文章目录 1. 什么是正则化2. 正则化方法2.1 Dropout正则化2.2 批量归一化(BN层) 学习目标&#xff1a; 知道正则化的作用掌握随机失活 DropOut 策略知道 BN 层的作用 1. 什么是正则化 在设计机器学习算法时希望在新样本上的泛化能力强。许多机器学习算法都采用相关的策略来减小…

【C++】面试题整理(未完待续)

【C】面试题整理 文章目录 一、概述二、C基础2.1 - 指针在 32 位和 64 位系统中的长度2.2 - 数组和指针2.3 - 结构体对齐补齐2.4 - 头文件包含2.5 - 堆和栈的区别2.6 - 宏函数比较两个数值的大小2.7 - 冒泡排序2.8 - 菱形继承的内存布局2.9 - 继承重写2.10 - 如何禁止类在栈上分…

ASP.NET Core - 依赖注入(四)

ASP.NET Core - 依赖注入&#xff08;四&#xff09; 4. ASP.NET Core默认服务5. 依赖注入配置变形 4. ASP.NET Core默认服务 之前讲了中间件&#xff0c;实际上一个中间件要正常进行工作&#xff0c;通常需要许多的服务配合进行&#xff0c;而中间件中的服务自然也是通过 Ioc…

w~Transformer~合集11

我自己的原文哦~ https://blog.51cto.com/whaosoft/12472192 #LightSeq 最高加速9倍&#xff01;字节跳动开源8比特混合精度Transformer引擎,近年来&#xff0c;Transformer 已经成为了 NLP 和 CV 等领域的主流模型&#xff0c;但庞大的模型参数限制了它的高效训练和推理。…

海云安开发者安全智能助手D10荣膺 “ AI标杆产品 ” 称号,首席科学家齐大伟博士入选2024年度 “ 十大杰出青年 ”

2024年12月27日&#xff0c;粤港澳大湾区AI领袖峰会在深圳成功举办&#xff0c;大会表彰了在人工智能技术创新、应用实践和产业发展等方面取得优异成绩的企业和个人&#xff0c;深圳海云安网络安全技术有限公司开发者安全智能助手D10荣膺“AI标杆产品”称号。同时&#xff0c;公…