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

python笔记17_实例演练_二手车折旧分析p2

……

书接上文

4.车辆等级维度

探查车龄为5年的车辆,折旧价值与车辆等级的关系。

# 筛选出车龄为5的数据创建新表
data_age5 = data[data['age'] == 5]
data_age5
# 分组聚合计算均值
data_car_level = data_age5.groupby('car_level_name')['lowest_price'].mean().reset_index()
data_car_level

这里用到了 DataFrame 的 groupby 函数,这个函数对于数据处理的重要程度无需赘言。

groupby 必须配合聚合函数同时使用,否则只能得到一个 DataFrameGroupBy 类型的玩意儿。

这里是可以只传 groupby 参数,不写聚合函数作用的字段的,也就是:

data_age5.groupby('car_level_name').mean()

这样的效果和前面提到的 describe 函数相似,会对所有数值字段进行聚合计算。

这里还用到了 reset_index 函数,可以给生成的新表添加一列数字索引。

data_car_level_sort = data_car_level.sort_values('lowest_price',ascending = False)
data_car_level_sort

创建新表,使用 sort_values 函数对数据进行排序。第一个参数必穿,是排序的数值列名,第二个参数是调整升序降序,默认升序,给参数 False 可以改为降序。

5.标签维度——可视化

根据标签,对比5年车龄车辆残值价格。

尝试使用另一种分组聚合方式——数据透视表:

data_picture = data_age5.pivot_table(index = 'maker_type', values = ['lowest_price'],aggfunc=np.mean)
bar_data_picture = data_picture.reset_index()
bar_data_picture

使用 pivot_table 函数,含义与 group by 相同,索引 index 就是分组的列,值 values 就是需要聚合计算的数值列,聚合函数 aggfunc 使用 numpy 包中的聚合函数,这里依旧取平均值。

# 设置字体
plt.rcParams['font.sans-serif'] = ['SimHei']
# 设置编码,保证图表中中文和符号正常显示
plt.rcParams['axes.unicode_minus'] = False
# 定义x轴和y轴都是哪些数据
sns.barplot(x = bar_data_picture['maker_type'], y = bar_data_picture['lowest_price'], ci=68)
# 设置标题
plt.title('五年车龄二手车价格对比')
plt.show()

使用 matplotlib.pyplot 包进行可视化属性参数配置。

更多配置详情请看:

http://t.csdn.cn/Kkx8Ihttp://t.csdn.cn/Kkx8I使用 seaborn 包传输图像必须的横纵坐标数据并展示。

注:查看matplotlib默认配置参数:print(plt.rcParams)

6.品牌维度——箱线图

data_brand = data_age5.groupby('brand')['lowest_price'].mean().reset_index()
data_brand_sort_desc = data_brand.nlargest(5, 'lowest_price')
data_brand_sort_desc

同样分组聚合,查看各个品牌的车辆残值价格平均数,然后取价格最高的前五个品牌。

使用 nlargest 函数可以轻松获得,与之相对的还有取最小值的前n个元素的函数 nsmallest 。

data_brand_sort_desc_plot = data_age5[data_age5['brand'].isin(data_brand_sort_desc.brand)]
data_brand_sort_desc_plot

反向取得价格平均数前五的品牌的车辆全部信息。

这里的 data_brand_sort_desc.brand 和 data_brand_sort_desc['brand'] 含义相同,也是提取表的一列。

isin 函数使用方式和SQL类似,利用布尔索引判断目标表的某一列值是否在条件列中。

上述过程相当于SQL的:

select t1.*
from 总表 t1
where lowest_price in (select lowest_price,brandfrom (   selectavg(lowest_price) lowest_price,brandfrom 总表group by brand) t2order by lowest_price desclimit 5
) 

对比SQL的复杂写法和嵌套逻辑,python代码看起来就简单多了(看起来)。

sns.boxplot(x='brand',y='lowest_price',data=data_brand_sort_desc_plot)

然后进行可视化,使用 boxplot 函数生成箱线图,传入 x 轴 y 轴以及表名,可以观察到数据的中位数、上下四分位数、异常值分布。

关于箱线图怎么看,以及 boxplot 函数的详细使用,和参数修改,可以参考:http://t.csdn.cn/jNh8Xicon-default.png?t=N4P3http://t.csdn.cn/jNh8X

7.相关性分析——热力图

python有一个探查不同维度之间相关性的常用函数,corr:

correlation = data.corr()
correlation

这是在对全体数据进行各维度相关性探查,corr 函数会将 DataFrame 表中所有数值类型的列进行相关性计算,计算结果在 -1 和 1 之间,结果越接近 1 表示两个维度值之间越正相关,越接近 -1 则说明两个维度值之间越呈负相关。

sns.heatmap(correlation, linewidth = 1.0, linecolor = 'white', square = True, annot = True, vmax=1.0) 
# annot是否显示值
# vmax热力图取值颜色最大值 
# square是否是正方形

紧接着用 heatmat 函数生成多热力图查看数据相关度整体情况,通过调整配置参数值,可以轻松看到数据各个维度的相关性。

结论:

二手车价格与新车价格呈很强的正相关;

车龄与二手车残值率呈很强的负相关;

车龄与二手车净残值也呈负相关,但没有残值率体现的明显。

(完)

相关文章:

python笔记17_实例演练_二手车折旧分析p2

…… 书接上文 4.车辆等级维度 探查车龄为5年的车辆,折旧价值与车辆等级的关系。 # 筛选出车龄为5的数据创建新表 data_age5 data[data[age] 5] data_age5 # 分组聚合计算均值 data_car_level data_age5.groupby(car_level_name)[lowest_price].mean().reset…...

android 12.0长按Power弹出关机对话框去掉屏幕截图和紧急呼救功能

1.概述 在12.0的系统长按关机键,会弹出关机的对话框,关机对话框里面由关机重启截图和紧急呼叫等功能,而由于开发功能需求要求去掉屏幕截图和紧急呼叫等功能,所以就要先找到关机对框的代码 然后实现功能 功能分析: 长按电源键弹出关机对话框,通过adb shell命令发现 就是f…...

2023年下半年软考高级需要报班吗?

首先,对于软考高级考试报班与否的问题,需要根据自身的情况来做出决定。如果你有较强的自学能力,且具备丰富的实际工作经验和技术知识,那么不报班也完全可以自学备考。但如果你对软件工程的知识掌握程度较低,或者时间紧…...

使用WordPress提高企业敏捷性

喜欢WordPress的原因有很多:该平台非常适合内容管理以及控制预算。此外, 在 提高开发效率和简化项目管理方面,WordPress可以通过多种方式提供帮助。 对于任何企业业务,目标始终是在不影响质量的情况下更快地启动项目、发布修复和…...

SSM编程---Day 07

目录 SpringMVC 一、概念 二、springMVC的请求处理流程 三、mvc:annotation-driven 标签的作用 四、HandlerMapping、Handler和HandlerAdapter的介绍 五、SpringMVC 体系结构 六、SpringMVC的常用注解 七、view和controller之间的传值 SpringMVC 一、概念 1、 Spring…...

Seata术语

1.什么是Seata Seata是一款开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务。 官网 2.Seata能干嘛 一个典型的分布式事务过程 分布式事务处理过程的一ID三组件模型: Transaction ID XID 全局唯一的事务ID三组…...

【Axure教程】通过文本框维护下拉列表选项

下拉列表(Dropdown List)是一种常见的用户界面元素,用于提供一组选项供用户选择。它通常以一个展开的列表形式出现,用户可以点击或选择列表中的一个选项。一般来说,他的选项值是由系统代码组成的,所以一般是…...

【C++】基础知识--输入/输出(5)

前面部分的示例程序几乎没有提供与用户的交互(如果有的话)。他们只是在屏幕上打印简单的值,但标准库提供了许多其他方式通过其输入/输出功能与用户交互。本节将简要介绍一些最有用的方法。 cin标准输入cout标准输出cerr标准错误(输…...

经典文献阅读之--PIBT(基于可见树的实时规划方案)

0. 简介 作为路径规划而言,不单单有单个机器人自主路径规划,近年来随着机器人行业的兴起,多机器人自主路径规划也越来越受到关注,对于多智能体寻路(MAPF)。一般的操作会给定一个地图、机器人集群、以及它们的初始位置和目的地&am…...

SAP-MM-计算方案字段解析

01、 “步骤”:标识此条件类型在计算方案中的顺序编号,此编号会影响到后续业务中条件类型的排序,不同条件类型之间的编号最好间隔大一些,这样设置便于以后对计算方案进行扩展; 02、 “计数器”&#xff1…...

go-gf框架两个表以事务方式写入示例

下面是对每一行代码的中文解释: // 创建数据库连接对象 var tx gdb.TX这行代码声明了一个名为tx的变量,类型为gdb.TX,表示数据库事务对象。 // 开启事务 if tx, err g.DB().Ctx(ctx).Begin(ctx); err nil {这行代码通过在数据库连接&…...

2023-5-31第三十一天

conform顺从,遵从,一致 squeeze挤压 proprietary专卖权,专利的,所有的 endeavor努力,尽力 comprise由...组成,包含 compose组成,写作 compact小型的 consult咨询,查阅 expan…...

什么是MQTT?mqtt协议和http协议区别

摘要: 什么是MQTT?MQTT(Message Queuing Telemetry Transport)译为:消息队列遥测传输,是一种轻量级的通讯协议,用于在网络上传输消息。MQTT 最初由 IBM 发布,后来成为 OASIS&#xf…...

平台使用篇 | 批处理(bat)脚本使用教程(四)

导读 一个开启多机软件在环仿真的批处理文件 (对应卓面RflyTools文件夹中SITLRun快捷方式),双击它,输入想要生成的飞机数量,即可生成多机软件在环仿真,等待RflySim3D显示3DFixed 4/4,然后可通过QGC控制飞机起飞。运行…...

接口的讲解

在这里之前我想童鞋们都学习过了springmvc。mybatis-plus。Springboot等一些框架 那么下面我们就整合这些框架 我们通过写crud这些接口 写接口的第一步就是引入pom文件 在pom文件里引入一下几种依赖 引入父级工程 thymeleaf导入模版工具类 SpringMVCjar包文件 热部署工具 l…...

G0第21章 :gin框架介绍、RESTful API、Gin渲染

G0第21章 :gin框架 01 内容介绍 https://gin-gonic.com/zh-cn/docs/ web本质 Web是基于HTTP协议进行交互的应用网络Web就是通过使用浏览器/APP访问的各种资源 package mainimport ("fmt""net/http" )func sayHello(w http.ResponseWriter, r…...

python list,dict操作

一、list 操作 Python中的列表是一种有序、可变的数据类型,可以存储任意类型的数据。以下是Python中常用的列表操作: 创建列表:使用[]或list()函数创建一个空列表,或者使用[value1, value2, ...]创建一个包含初始值的列表。 访问…...

我有一个页面a,在页面a中调用了一个组件,然后组件中要切换页面a的一块区域,该怎么实现?

你可以在组件中使用路由的编程式导航,通过访问路由实例来切换页面a的对应区域。具体来说,你可以先在页面a中设置一个具有唯一标识的占位符元素,然后在组件中通过路由实例访问这个元素并修改其内容或样式来实现区域切换。路由的编程式导航可以…...

ChatGPT唤醒AI游戏:AIGC持续走深,游戏或成AI最佳抓手

随着人工智能技术的不断发展,AI在游戏行业的应用日益深入。本文将详细探讨ChatGPT在AI游戏领域的应用,以及游戏如何成为AI技术的最佳抓手。让我们一起探讨这个有趣且充满潜力的领域。 一、引言 人工智能在各行各业都取得了巨大的成功,而游戏…...

远程服务和web服务和前端,三方通过socket和websocket进行双向通信传输数据

1. 什么是socket? 在计算机通信领域,socket 被翻译为“套接字”,它是计算机之间进行通信的一种约定或一种方式。通过 socket 这种约定,一台计算机可以接收其他计算机的数据,也可以向其他计算机发送数据。 2. 什么是websocket?…...

Linux 网络基础(2)应用层(http/https协议、请求格式、响应格式、session、cookie、加密传输)

说明:网络基础2讲解的是应用层的典型协议, 通过对于典型协议的理解,来体会数据的网络传输的软件层面的流程与原理。 面试中网络通信相关问题占了很大的比重,而网络通信相关的问题大多都集中在网络基础2这个单元中 下面是应用层的位…...

解决sshfs挂载报错

使用ssh命令和sshfs命令报错 read: Connection reset by peer rootjiangcheng01:~/common/remote# sshfs -o allow_other htrdxxx.xxx.xxx.xxx:/home/htrd /root/common/remote/dev01 read: Connection reset by peer 报错问题排查,追加命令 -o debug -o sshf s_d…...

由于过多的连接错误而被 MySQL服务器 阻止

Caused by: com.mysql.cj.exceptions.CJException: null, message from server: "Host 10.105.***.** is blocked because of many connection errors; unblock with mysqladmin flush-hosts" 这个错误可能表示当您尝试使用 IP 地址为 "10.105.***.**" 的…...

Go语言实现JDBC

Go语言操作数据库 Go语言提供了关于数据库的操作,包下有sql/driver 该包用来定义操作数据库的接口,这保证了无论使用哪种数据库,操作方式都是相同的; 准备工作: 下载驱动 需要在代码所在文件夹下执行相应的命令 go get github.com/go-sql-driver/mys…...

ubuntu修改环境变量的几种方法

ubuntu修改环境变量的几种方法 有多种方法可以修改Ubuntu系统的环境变量,包括: 临时修改环境变量:在终端中使用export命令可以临时修改环境变量。例如,要将PATH环境变量添加到新目录,可以运行以下命令: …...

基于html+css的图展示95

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…...

数据库基础——5.运算符

这篇文章我们来讲一下SQL语句中的运算符操作。 说点题外话:SQL本质上也是一种计算机语言,和C,java一样的,只不过SQL是用来操作数据库的。在C,java中也有运算符,这两种语言中的运算符和数学中的运算符差距不…...

JMeter 性能测试基本过程及示例

jmeter 为性能测试提供了一下特色: 2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集!_哔哩哔哩_bilibili2023年最新出炉性能测试教程,真实企业性能压测全流程项目实战训练大合集!共计11条视频&…...

漏洞复现 CVE-2018-2894 weblogic文件上传

vulhub weblogic CVE-2018-2894 1、 搭建好靶场,按提示访问 http://192.168.137.157:7001/console 按照给出的文档,会查看容器的日志,找到管理员用户名/密码为 weblogic / h3VCmK2L,暂时用不到,不需要登录 2、未授权…...

二叉树:填充每个节点的下一个右侧节点指针(java)

leetcode116:填充每个节点的下一个右侧节点指针 leetcode原题链接:题目描述递归解法一递归方法二(效率更高)二叉树专题 leetcode原题链接: 116题:填充每个节点的下一个右侧节点指针 题目描述 给定一个 完美二叉树 &a…...