政安晨:快速学会~机器学习的Pandas数据技能(五)(分组和排序)

提升您的洞察力水平,数据集越复杂,这一点就越重要。


概述

映射允许我们逐个值地转换DataFrame或Series中的数据,针对整个列进行操作。然而,通常我们希望对数据进行分组,然后对所在组进行特定操作。

正如你将学到的,我们可以通过groupby()操作来实现这一点。我们还将涵盖一些额外的主题,例如更复杂的索引DataFrame的方式,以及如何对数据进行排序。

群组分析

咱们接着前几篇的文章继续处理数据,数据文件从我这篇文章中下载:

政安晨:快速学会~机器学习的Pandas数据技能(三)(重命名与合并)icon-default.png?t=N7T8https://blog.csdn.net/snowdenkeke/article/details/136081348到目前为止,我们一直在大量使用的一个函数是value_counts()函数。我们可以通过以下方式复制value_counts()函数的功能:

import pandas as pd
reviews = pd.read_csv("./winemag-data-130k-v2.csv", index_col=0)
pd.set_option("display.max_rows", 5)

#查看表格
reviews

reviews.groupby('points').points.count()

groupby()创建了一个评论的分组,为给定的葡萄酒分配了相同的点数值。然后,对于这些分组中的每一个,我们提取了points()列,并计算它出现的次数。value_counts()只是这个groupby()操作的一个快捷方式。

我们可以使用之前使用过的任何摘要函数来处理这些数据。例如,要获取每个点数值类别中最便宜的葡萄酒,我们可以执行以下操作:

reviews.groupby('points').price.min()

您可以将我们生成的每个组视为DataFrame的一个切片,其中仅包含与条件匹配的数据。我们可以直接使用apply()方法访问这个DataFrame,并可以以任何我们认为合适的方式操纵数据。例如,以下是选择数据集中每个酒庄的第一个被评价葡萄酒的名称的一种方法:

reviews.groupby('winery').apply(lambda df: df.title.iloc[0])

更加细致的控制,你还可以按多列进行分组。举个例子,这里是我们如何按国家和省份挑选出最好的葡萄酒:

reviews.groupby(['country', 'province']).apply(lambda df: df.loc[df.points.idxmax()])

另外一个值得一提的groupby()方法是agg(),它允许你同时对DataFrame运行多个不同的函数。例如,我们可以这样生成数据集的简单统计摘要:

reviews.groupby(['country']).price.agg([len, min, max])

使用groupby()方法的有效用法将使您能够在数据集中做许多非常强大的事情。

多级索引

迄今为止,在我们看到的所有示例中,我们一直在使用具有单标签索引的DataFrame或Series对象。但是,groupby()稍有不同,它根据我们运行的操作不同,有时会生成所谓的多级索引。

多级索引与常规索引不同,它具有多个级别。例如:

countries_reviewed = reviews.groupby(['country', 'province']).description.agg([len])
countries_reviewed

mi = countries_reviewed.index
type(mi)

多层索引具有几种处理层次结构的方法,这些方法在单级索引中是不存在的。它们还需要两个级别的标签来检索值。处理多层索引输出是对Pandas新用户常见的"陷阱"。

在Pandas文档的MultiIndex / Advanced Selection部分详细介绍了多层索引的使用案例以及使用它们的说明。

然而,通常你会经常使用的多层索引方法是将其转换回常规索引的reset_index()方法:

countries_reviewed.reset_index()

分类排序

再次查看countries_reviewed,我们可以看到分组返回的数据是按照索引顺序而非值顺序排序的。也就是说,当输出groupby的结果时,行的顺序取决于索引中的值,而不是数据中的值。

为了按照我们期望的顺序获取数据,我们可以自己进行排序。sort_values()方法非常方便用于此操作。

countries_reviewed = countries_reviewed.reset_index()
countries_reviewed.sort_values(by='len')

sort_values()默认按升序排序,其中较小的值先出现。然而,大多数情况下,我们希望进行降序排序,即较高的数字先出现。这样可以这样做:

countries_reviewed.sort_values(by='len', ascending=False)

要按索引值排序,请使用sort_index()方法。该方法具有相同的参数和默认排序顺序:

countries_reviewed.sort_index()

为了按索引值排序,可以使用sort_index()方法。这个方法具有相同的参数和默认排序顺序:

countries_reviewed.sort_index()

最后,要知道你可以同时按多列进行排序:

countries_reviewed.sort_values(by=['country', 'len'])

小伙伴们有空可以尝试一下,其实把数据降维思考,您会有不一样的认识。



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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

十二、常见算法和Lambda——五道经典算法题

十二、常见算法和Lambda——经典算法题 练习一(按照要求进行排序)练习2:(不死神兔)练习3(猴子吃桃子)练习4(爬楼梯) 练习一(按照要求进行排序) 定义数组并存…

无人机动力系统高倍率锂聚合物电池介绍,无人机锂电池使用与保养,无人机飞行控制动力源详解

无人机电池使用及保养 电池是无人机飞行的动力来源,也是一个消耗品,对电池充分了解,采取正确的使用方法,妥善进行维护保养将有助于提高飞行的安全性、延长电池的使用寿命。以下将详细对电池的使用和管理进行讲解。 高倍率锂聚合物电池的含义…

无人机系统组装与调试,多旋翼无人机组装与调试技术详解,无人机飞控系统原理

多旋翼无人机飞控系统的组装 在开始组装前,确保您已准备好所有必要的工具和材料。这包括螺丝刀、电烙铁、焊台、杜邦线、飞控板、GPS模块、电机、桨叶等。 飞控安装 安全开关安装,将安全开关固定在机架上。将安全开关的线插到飞控SWITCH插口上。 电调…

Vue源码系列讲解——虚拟DOM篇【二】(Vue中的DOM-Diff)

目录 1. 前言 2. patch 3. 创建节点 4. 删除节点 5. 更新节点 6. 总结 1. 前言 在上一篇文章介绍VNode的时候我们说了,VNode最大的用途就是在数据变化前后生成真实DOM对应的虚拟DOM节点,然后就可以对比新旧两份VNode,找出差异所在&…

Asp .Net Core 系列:Asp .Net Core 集成 Panda.DynamicWebApi

文章目录 简介Asp .Net Core 集成 Panda.DynamicWebApi配置原理什么是POCO Controller?POCO控制器原理ControllerFeatureProvider实现自定义判断规则IApplicationModelConventionPanda.DynamicWebApi中的实现ConfigureApiExplorer()ConfigureSelector()ConfigurePar…

深度学习入门笔记(八)可以不断思考的模型:RNN与LSTM

8.1 循环神经网络RNN 之前学到的 CNN 和全连接,模型的输入数据之间是没有关联的,比如图像分类,每次输入的图片与图片之间就没有任何关系,上一张图片的内容不会影响到下一张图片的结果。但在自然语言处理领域,这就成了…

【Unity】QFramework通用背包系统优化:TipPanel优化

前言 在学习凉鞋老师的课程《QFramework系统设计:通用背包系统》第五章时,笔者对物品提示TipPanel界面进行了一些优化。 优化内容包括: 解决闪烁问题跟随鼠标移动自适应界面大小生成位置优化 效果还是蛮丝滑的: 解决闪烁问题 …

JQuery学习一

JQuery学习一 文章目录 前言一、JQuery是什么?二、属性和内容2.1. jQuery选择器2.2. attr() 方法2.3. text()方法2.4. val()方法2.5. 小结2.6. 添加内容 三、操作CSS3.1. addClass() 方法3.2. ​removeClass() ​方法3.3. toggleClass() 方法3.4. CSS()方法3.5. jQu…

REvil/Sodinokibi勒索病毒通用解密工具

前言 REvil/Sodinokibi勒索病毒相信关注我公众号的朋友,应该都不会陌生了,如果不清楚的可以去翻看之前的文章吧,如果你见过类似下面这样的勒索病毒攻击之后的电脑桌面,如下所示: 或者你见过这样的勒索提示界面&#x…

“金龙送礼,昂首贺春”—— Anzo Capital给您送五粮液、茅台啦!

“迎龙年,贺新春”—— 值此龙年将至之际,为答谢新老客户一直以来对Anzo Capital昂首资本的信赖和支持,Anzo Capital昂首资本2月入金送礼活动重磅升级,除了京东卡、天猫超市卡、奔富红酒、SKG健康产品、白酒礼盒以外&#xff0c…

ncc匹配(五,匹配提速的思考)

感觉ncc(相关系数匹配)与bpnet(bp神经网络)相似,但ncc简洁方便快速,计算量小,问题点也少。 都有归一化的动作,都是相关性的学习,不过bpnet可以学习多种类型,…

【Unity】重力场中的路径预测方法

前言 笔者前些天参加完了一场72小时的GameJam游戏开发比赛。这次比赛的主题是“探索”,笔者做了一个名为《探索者号》的探索宇宙的游戏(游戏名一开始叫做《星际拾荒者》,但这不重要)。 在开发过程中,笔者遇到了一些问…

Django的配置文件setting.py

BASE_DIR 项目路径:默认是已经打开的主项目路径 ​​​​​​​BASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__))) SECRET_KEY 密钥 SECRET_KEY (dh&_fm2hfn9y)35!_6#$a7q%%^onoy#-a8x18r4(6*8f(aniDEBUG 帮助调试,默认…

【pip】本地和Anaconda的pip冲突时如何指定安装位置

输入指令: where pip 显示如下: D:\LenovoSoftstore\Anaconda\Scripts\pip.exe C:\python\python3.8\Scripts\pip.exe 可以看到有两个位置的pip,一个Anaconda下的pip,一个是本地的pip。 当我们使用pip安装的时候,系…

JavaScript综合练习3

JavaScript 综合练习 3 1. 案例演示 2. 代码实现 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><meta http-equiv"X-UA-Compatible" content"IEedge" /><meta name"viewpor…

C语言操作符超详细总结

文章目录 1. 操作符的分类2. 二进制和进制转换2.1 2进制转10进制2.1.1 10进制转2进制数字 2.2 2进制转8进制和16进制2.2.1 2进制转8进制2.2.2 2进制转16进制 3. 原码、反码、补码4.移位操作符4.1 左移操作符4.2 右移操作符 5. 位操作符&#xff1a;&、|、^、~6. 逗号表达式…

【数据结构】堆(创建,调整,插入,删除,运用)

目录 堆的概念&#xff1a; 堆的性质&#xff1a; 堆的存储方式&#xff1a; 堆的创建 &#xff1a; 堆的调整&#xff1a; 向下调整&#xff1a; 向上调整&#xff1a; 堆的创建&#xff1a; 建堆的时间复杂度&#xff1a; 向下调整&#xff1a; 向上调整&#xff…

电商小程序05用户注册

目录 1 搭建页面2 设置默认跳转总结 我们上一篇拆解了登录功能&#xff0c;如果用户没有账号就需要注册了。本篇我们介绍一下注册功能的实现。 1 搭建页面 打开应用&#xff0c;点击左上角的新建页面 输入页面的名称&#xff0c;用户注册 删掉网格布局&#xff0c;添加表单容…

Cisco firepower2100系列使用FDM管理FTD

Cisco firepower2100系列使用FDM管理FTD 啥是FDM Firepower Device Manager 当思科Firepower系列运行的FTD镜像时&#xff0c;可以通过2种方式进行管理 第1种方式&#xff1a; FMC (Firepower management Center) 可以进行统一管理&#xff0c;一台FMC可以管理多个FTD&…

RK3568笔记十二:Zlmedia拉流显示测试

若该文为原创文章&#xff0c;转载请注明原文出处。 Zlmediakit功能很强大&#xff0c;测试一下拉流&#xff0c;在通过解码显示。 一、环境 1、平台&#xff1a;rk3568 2、开发板:ATK-RK3568正点原子板子 3、环境&#xff1a;buildroot 测试的代码在GitHub - airockchip/…
最新文章