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

news2024/12/23 11:56:44

……

书接上文

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
        ,brand
    from (   
        select
            avg(lowest_price) lowest_price
            ,brand
        from 总表
        group by brand
    ) t2
    order by lowest_price desc
    limit 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 函数生成多热力图查看数据相关度整体情况,通过调整配置参数值,可以轻松看到数据各个维度的相关性。

结论:

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

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

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

(完)

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

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

相关文章

16.2:岛屿数量问题

文章目录 岛屿数量问题方法一:采用递归的方法方法二:使用并查集的方法(map)方法三:使用并查集的方法(数组) 岛屿数量问题 测试链接:https://leetcode.com/problems/number-of-islan…

大数据:分布式计算,MapReduce,hadoop的计算组件,hive是sql分布式计算框架,底层就是基于MapReduce的

大数据:分布式计算,MapReduce,hadoop的计算组件,hive是sql分布式计算框架,底层就是基于MapReduce的 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,可能很多算法学…

【C++】一文带你入门 STL

一 STL 组成 graph LRA[STL] --- B[容器 container]A --- C[配接器 adapter]A --- D[迭代器 iterator]A --- E[仿函数 function]A --- F[算法 algorithm]A --- G[空间配置器 allocator]二 常用容器 容器简介 下面我们来简单看一下这些容器的常用接口的使用,并分析…

更新中-深度学习实战中遇到的一些概念+少量代码

onnx ONNX 是一种用于机器学习模型的开放式表示格式,它可以让不同的深度学习框架之间共享模型。 import onnxruntime # 加载模型 session onnxruntime.InferenceSession(model.onnx) # 运行模型。第一个参数是输出变量列表,不指定的话返回所有值 outp…

ESP8266使用MicroPython接入ThingsBoard

1、概述 我们老大当初叫我学习microPython,这个可以直接将代码发到板子上,然后就可以跑,就相当于设备业务代码由我们来写,不仅仅是让嵌入式来写,嵌入式做的就是封装函数,我们可以调用.最终这个还是实现了,但是没有推广. 2、设备 我自己购买的设备是ESP8266,某宝上购买的,mic…

智能仓储系统哪家公司做的比较好?求推荐排名不错的智能仓储公司?

什么是仓储服务信息平台?仓储服务信息平台可以为企业提供哪些便利? 随着电商和物流行业的快速发展,仓储服务越来越受到人们的关注。为了更好地管理仓储服务,提高效率,降低成本,仓储服务信息平台也应运而生…

CTF国赛2023 - ukfc(四道逆向已下班)

没啥好说的,惜败已复现:badkey1、国粹、ezbyte、moveAside、ezAndroid Notice:复现时候的一些题解来源于各大战队的wp,比如F61d,侵删 Re ezbyte 首先跟踪很容易分析到前后缀 至于里面的,得知道是dwarf…

哪个牌子的电容笔好用?Apple Pencil平替

随着时代的进步,数码产品在人们日常生活中的使用频率越来越高,一个iPad和一支电容笔似乎已然成为人们主要的学习工具了。电容笔的发展速度很快,在众多的电容笔牌子中,什么牌子好用又便宜?下面,我来给大家推…

深度学习进阶篇[8]:对抗神经网络GAN基本概念简介、纳什均衡、生成器判别器、解码编码器详解以及GAN应用场景

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

FastReport Business Graphics .NET 2023.1 Crack

FastReport 商业图形 .NET .NET WinForms 的数据可视化库 使用 FastReport 业务图形库,您可以可视化不同层次的数据,构建业务图表以供进一步分析和决策。 所有这些都可以直接在您的应用程序中工作! 利用 .NET 7、.NET Core、Blazor、ASP.NE…

数据采集学习心得

数据采集是指从互联网或其他数据源中收集数据的过程。在当今信息时代,数据采集已经成为了一项非常重要的技能。无论是在商业领域还是学术领域,数据采集都是非常必要的。本文将分享我在学习数据采集过程中的心得体会。 一、数据采集的重要性 在当今信息…

高考即将到来,如何选择大学和专业?(2023版本)

同学们,高考又快到了,怎么选择大学和专业一直是同学们心烦的事情,正所谓“选择大于努力”,选择错了,努力方向自然就错了,事倍功半,甚至南辕北辙,所以对此我们必需慎之又慎&#xff0…

Mybatis自定义分页插件及PageHelper源码分析

文章目录 前言一、自定义一个简单的mybatis分页插件?1.判断当前传参是不是一个Page,如果是page就进行转换。2.分页查询总条数3.修改原有sql4.执行原有方法5.存在问题: 二、PageHelper分析1.PageHelper简介2.PageHelper源码分析 三&#xff1a…

概率论:假设检验

参考书目:《行为科学统计精要》(第八版)——弗雷德里克J格雷维特 1、假设检验预备知识 Z分位数样本均值的分布标准误 参考: 概率论:样本与总体分布,Z分数与概率_格勒王的博客-CSDN博客如何理解样本和整体…

Linux入门到进阶

文章目录 前言一、第一章-初识Linux1.初识Linux2.虚拟机介绍3.VMware Workstation安装4.在VMware上安装Linux5.远程连接Linux系统6.扩展:WSL(Windows Subsystem for Linux)7.扩展:虚拟机快照 二、第二章-Linux基础命令1.Linux的目…

AMEYA360:纳芯微推出车规级耐高压、三线霍尔开关及锁存器NSM101x系列

纳芯微推出全新三线制车规霍尔效应开关/锁存器NSM101x系列,为数字位置检测提供高精度的解决方案,可被广泛应用于汽车执行器等的位置检测。 NSM101x产品系列包含了3个产品型号,即NSM1011(单极霍尔开关)、NSM1012(全极霍尔开关)、NSM1013(霍尔锁…

oracle19c介绍和windows上安装

目录 一、版本 (1)历史 (2)11g和12c管理方式区别 11g 12C (3)各个版本对操作系统要求 二、分类 (1)分为桌面类和服务器类 (2)分为企业版和标准版 三…

后端(一):Tomcat

我们之前的前端是被我们一笔带过的,那不是我们要讲的重点,而这里的后端则是重点。本章先来认识认识后端的基础。 Tomcat 是什么 我们先来聊聊什么叫做tomcat,我们熟悉的那个是汤姆猫: 这和我们Java世界中的Tomcat 不是同一只猫&…

包含合并单元格的表格快速排序

实例需求:现需要将原料配方成分表按照“原料含量”从高到低排序,如下图所示。由于表格中包含合并单元格,因此Excel的排序功能无法正常。 示例代码如下。 Sub demo()Dim data(), i, idx, k, slstRow Cells(Rows.Count, 2).End(xlUp).RowReDi…

02-项目系统架构

1、为何选择xxxxx 1.1、高并发场景有哪些? 商品秒杀,双11 微信支付宝平台 微博突发热点 用户操作日志 购票平台 1.2、为何选择xxxxx 业务复杂度高于淘宝双11,考验个人程序设计能力 动态库存 选座功能 线上线下 持续高并发业务&…