pandas 数据合并与整形 2|学习笔记

简介: 快速学习 pandas 数据合并与整形 2

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践pandas 数据合并与整形 2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15392


pandas 数据合并与整形 2

 

内容介绍:

一、Reordering and Sorting Levels

二、Summary Statistics by Level

三、Indexing with a DataFrame’s columns

 

一、Reordering and Sorting Levels

下面来看这个数据框数据的重排序和层级排序。

有时候需要在一个 axis (轴)上按层级进行排序,或者在一个层级上,根据值来进行排序。

可以用 swap level 这个函数,将两个层级进行交换,然后返回一个层级改变后的新对象(数据本身并不会改变)。

下面是列举的例子,

刚刚的数据框,使用了 swap level,level 等于就是层级的级别(第0级、第1级...),那么这例用 key1和 key2给它交换一下,然后执行观察结果。结果可以很明显的看出,key2到了最左边,变成第0级索引,key1变成第1级索引,交换两个乘积索引,原因是其重排列或者重排序。

然后,可以用 sort_index 函数。sort_index 则是在一个层级上,按数值进行排序,刚刚是定义了层级进行交换、互换,那么使用数据进行排序的话,可以用 sort_index 作用在具体的层级上。比如在交换层级的时候,通常也会使用 sort_index,来让结果按指示的层级进行排序。

下面是列举的例子,数据框编写的 sort_index 排序,按照 level=1,注意level是从0开始(第0级、第1级...),那么运行查看结果。它应该是按照 key2来排序,那 key2的数值是多少?原来的值是什么?因为上面离得太远,可以把 frame 填写到下方,然后运行,可以看到原来的 key2数值是1、2、1、2。但上面按照 key2(level=1),排完序后,排序结果 key2数值为1、1、2、2。

大家注意,如果按照列的 sort_index 进行排序,会导致其报错,列的情况拥有 color 和 state。这里观察排序,发现它会进行报错,也就是说 level 一般就在说明在行方面(指 key1和 key2),那么最左边就是 level=0,然后最右边就是 level=1,这里需要理解其含义。

下面再进行示例,sort_index (level=key2),这里直接使用名字,当然也可以用其数字代表着数字顺序,选择执行后可以看到已经按照 key2 排序了,接下来操作稍微复杂点,把 key1和 key2进行交换,然后再按照 key2排序。然后运行查看结果,看到 key1与 key2已经进行了调换,并且按照 key2排序。

这个就是层次索引的各种操作,然后实际上,如果按照习惯来进行排序的话,一般按照 key2排序比较多,后来直接是 sort_index。

 

二、Summary Statistics by Level

下面来学习,按照层级索引来做回答统计数据。那么可以在某个层级上进行数据的汇总,观察数据框,这里行上面是 key1和 key2这两个索引,列上面是 state 和 color 这两个索引,那么来进行汇总求和。

大家可以看到这这里出现 level=key2进行运行,可以看到 key2的内容,其原本的值就是1、2,那么按照 key2进行汇总的话,就是将key 汇总在一起,数值1汇总在一起,数值2汇总在一起。观察1的值,1的值为多少呢?上面出现 green 是0,出现数值为1,green 是6,所以相加数值为6。然后再看看 red,red 在上面值为1,在下面的数值是7,所以这里相加是8。同样的道理,所以大家需要了解其汇总的对应关系。

然后再来看看按照 color这个索引进行汇总,然后axis=1,这里注意行和列区分一下,运行观察结果,上面有 color、green、red,看一下 green 和 red 的数值,green 的值是0和2,所以相加结果也是2,red 只有一个数值为1,所以相加结果也是1,其它的仔细对照下。

 

三、Indexing with a DataFrame’s columns

然后再看第三个内容,可以用数据框的列来做索引,这是经常用到的,在实际数据里经常用列的名字来做索引,大家可以对应数据库,这里按照姓名做索引,按照编号做索引,按照日期做索引,一般都是列做索引,所以这个其实很正常。把 DataFrame 里的一列或多列作为行索引(row index)是一件很常见的事;另外,可能还希望把行索引变为列。

下面来看一下数据,这里构造数据框,然后这段给其定义为 a、b、c、d,然后定义后面的数据再进行运行。上面定义的为 a、b、c、d,然后下面这个行的索引,是默认的0到6,这是里面的数据。

然后来按照列来做索引,DataFrame 的 set_index 会把列作为索引,并创建一个新的 DataFrame。

这里用变量将其保存起来,代码为frame2 = frame.set_index(【‘c’;‘d’】),按照 c 和 d 做索引,那么 c 为第1索引,d 为第2索引,如果利用前面讲的层次索引、分层索引的话,就是第0级和第1级。这里进行运行,可以看到 c 和 d 的内容变成了索引的名字。

如果要保留原本的索引,可以使用 Drop = false,其默认是删除状态,因为使用 Drop = false,所以其 c 和 d 被保留下来,下图也许看起来可以更好的进行对比。另一方面,reset_index 的功能与 set_index 相反,它会把多层索引变成列,这里选择执行来观察还原情况。

大家理解所讲的内容,这就是层次索引、分层索引,这种功能就是在以前的基础上加深了内容。

相关文章
抖音快手直播间打字脚本,直播间发言循环弹幕插件,自动打广告发送文字信息源码
这是一款用于快手直播间的自动化营销工具源码,可实现直播间自动发送非重复随机广告信息、虚拟欢迎语、持续点赞等功能。
|
21天前
|
存储 人工智能 自然语言处理
构建AI智能体:三十七、从非结构化文本到结构化知识:基于AI的医疗知识图谱构建与探索
知识图谱是一种用图结构表示实体及其关系的技术,通过三元组(主体-关系-客体)构建语义网络。文章以医疗领域为例,详细介绍了知识图谱的构建流程:数据预处理、实体识别、关系抽取、知识融合、存储与可视化等步骤。知识图谱可应用于智能问答、辅助诊断、药物研发等场景,其结构化特性可弥补大语言模型的不足,二者结合能提升AI系统的准确性和可解释性。文章还展示了基于大模型的医疗知识图谱构建代码示例,涵盖实体识别、关系抽取、图谱存储和智能问答等核心功能,体现了知识图谱在专业领域的实用价值。
320 12
|
7月前
|
传感器 人工智能 Java
通义灵码 2.5 MCP功能优化上手体验
最近体验了通义灵码的新功能,尤其是新增的智能体模式,它能根据需求自动规划任务流程,例如创建Spring Boot项目、生成代码文件等,极大提升效率。同时,MCP工具支持2400多个服务,助力快速定位配置文件。Qwen3模型的加入增强了复杂逻辑处理能力,而记忆功能让助手更懂用户需求。上下文支持多文件选择和工程目录操作,进一步优化重构效率。这些新特性对个人开发者和团队协作都是强大助力,值得尝试!
|
29天前
|
JSON 前端开发 API
技术解析:58同城房产数据平台 - 根据项目ID获取详情数据的API接口实践
本文探讨如何通过项目ID调用58同城房产API获取详情数据,涵盖接口原理、请求分析、参数结构、Python调用示例及反爬机制,强调合规性与技术风险,为房产数据开发提供参考。(239字)
95 0
|
11月前
|
存储 人工智能 运维
云监控 2.0:全栈智能可观测平台
云监控2.0是由阿里云智能集团资深产品专家司徒放分享的全栈智能可观测平台。该平台旨在解决传统监控系统的割裂问题,通过统一接入、存储和观测模型,实现基础设施、应用及用户体验的全面可观测。云监控2.0引入了智能体和大模型技术,支持全局搜索、问题排查和根因定位,大幅提升运维效率。未来将扩展更多智能洞察场景,并开放API供客户定制使用。
681 7
|
10月前
|
安全 BI 数据安全/隐私保护
基于条件的访问控制——RBAC
基于角色的访问控制(RBAC)根据员工的角色和职责分配权限,确保用户仅能访问所需资源,降低数据泄露风险。通过ADManager Plus等工具,企业可以高效管理权限,减少手动操作,提升安全性并保护敏感信息。RBAC的核心原则是最小权限,即只为员工分配完成工作所需的权限。这不仅提高了工作效率,还减少了未经授权访问的风险,是防范网络威胁的有效手段。
215 3
|
人工智能 前端开发 PyTorch
【AI系统】动态图与静态图转换
从 TensorFlow、PyTorch 到 PaddlePaddle、MindSpore、MegEngine,主流 AI 框架经历了动静分离、动静结合到动静统一的发展过程。这些框架通过动态图转静态图技术,实现了计算效率与灵活性的平衡,显著提升了 AI 开发效率和产品应用的便利性。
388 14
Cursor + qwen2.5-coder 32b 的配置方式
安装Cursor后,进入设置修改OpenAI基础URL为阿里云的DashScope接口,并添加Qwen2.5-Coder 32B模型。需先访问阿里云百灵控制台申请免费Key。配置完成后,即可使用该模型进行开发和测试。
9124 2
|
机器学习/深度学习 数据采集 算法
【MATLAB】PSO_BP神经网络回归预测(多输入多输出)算法原理
【MATLAB】PSO_BP神经网络回归预测(多输入多输出)算法原理
596 3
|
JavaScript
elementUI/Plus 输入框按回车刷新页面分析与解决
elementUI/Plus 输入框按回车刷新页面分析与解决
elementUI/Plus 输入框按回车刷新页面分析与解决