pandas apply函数_Pandas学习笔记(四)

 2023-09-07 阅读 21 评论 0

摘要:前言上一篇我们研究了Pandas的级联,这一节从如何在DataFrame中处理重复数据开始。在DataFrame中查找不重复的数据在实际数据集中,经常会有大量重复的数据,为了去除重复,找到那些唯一的数据,在没有用Pandas之前,我个人对这类数据的

前言

上一篇我们研究了Pandas的级联,这一节从如何在DataFrame中处理重复数据开始。

DataFrame中查找不重复的数据

在实际数据集中,经常会有大量重复的数据,为了去除重复,找到那些唯一的数据,在没有用Pandas之前,我个人对这类数据的处理是利用集合set的元素唯一性来实现,这样需要写不少的代码,但在Pandas中,只是一个函数即可搞定,下面我们来举例说明:

5d4b9a82553b0f6efb610621fe69f205.png

比如我们要查找列col2中的不重复数据,如果用set集合实现,我是这样子做的:

1c2c6f9a97c27c59f5435fd447be0b8a.png

如果用Pandas来完成上述功能,只用一句即可:

37d6dc4002f0907c0d4b49bc6fe403fd.png

如果要统计不重复数的个数,也只需要一句即可:

38cbee57697840ea06d3608517d0b4d5.png

要统计某一列数据中数字出现的频率,原来我只能是用字典来实现,代码如下:

c812c77f82635e5b2b054ce3a240b257.png

若用Pandas来处理,还是一条语句即可:

47df8167724f0f88ce0cccab723aa43b.png

从上述例子可以看出,采用Pandas来对数据处理,可以用很简洁的方式代替原本需要组合语句才能实现的功能。下面我们再来看看对数据的批处理。

apply方法

关于applymap等函数,在本公众号前面的文章中有介绍过,在Pandas中,也实现了apply函数,下面举例说明:

86bd4098d7e53f16a01ea0e9c3037522.png

在上述例子中,我们自定义了一个求平方的函数,然后将刚才定义的数据框架的第1列数据分别应用到这个求平方函数中,即可得到该列每个数的平方,当然也可以用Python中内置的函数,比如对第3列数据求每个字符串的长度:

a04b1f2e9a4e5cb092d0b723ef0d106a.png

当然,我们还可以在apply中直接嵌入lambda函数:

7b5a8f0e2a250782710f7dbceff09a44.png

获取DataFrame属性有时候我们要得到DataFrame的列名和行名,这时就要用到获取其属性的方法,下面举例说明:

9fc89dcb1fff1c690ab1c8f8b89bdc91.png

从上述输出结果来看,其列名是一个Index类型的数据,由于在定义DataFrame时,我们没有为其指定index选项,因此,它的Index采用的是Pandas默认的RangeIndex数字序列。

排序

对数据排序是经常要用到的操作,在Excel中可以以指定列对数据集排列,Pandas中也有类似的功能:

afe0df96e2b3f5562ee2ea663126df6a.png

当然也可以逆向排序,此时只需要为其指定一个参数ascending=False即可,它的默认值是True,即默认从小到大,下面显示其逆序排列:

b19c99c659a765ab4acef2728fd430e8.png

从上述结果输出可知,sort_values会生成新的数据框架,不会修改原数据,如果要修改原数据,则需要inplace=True,这个在之前的学习笔记中也提到有类似的函数也采用的是这种处理方式。

关于空值的查询

在构建一个恰好够用的Pandas子集的时候,我们介绍过在Pandas中,查找空值有两个函数,一是isna,一是isnull,由于在DataFrame中是用numpy中的nan来表示空值,因此我们推荐只用isna来查询空值,比如构建一个含空值的数据集如下:

cdec4bd08c3fd2e5dd37efb7409c97ec.png

对其查询空值:

2bcd0e453367b553c420fedcac0e6bee.png

数据透视表(pivot table)熟悉Excel的同学一定对其中的数据透视表印象深刻,它可将原数据概述化(summarizes)为另一个表,在新的表中,可以很容易对进行分类、切片、过滤、排序、计数等等,下面我们来看一下Pandas中的透视表是如何创建的。先构建一个新的数据框架:

1caf8e53b1a595da127ef38fd7cc6d26.png

创建一个透视表要用到函数.pivot_table,下面我们将根据上面的DataFrame来创建一个透视表:

e16f86bd5a736db6d51bc3882bbc0094.png

pivot_table的参数values是要透视的数据点,index是指定的关键列,columns代表应该被分析的列,比如上面生成的透视表第一行,即是棕色的狗对应的xD列值来算是1,而对应的yD列值来算是3。因为黑色的狗没有对应的y,因此第二行中y列下为NaN。其余类似。

小结

本文首先对Pandas中的数据去重进行了分析,又探索了apply函数的应用,接着对于数据的排序进行了说明,在文章的最后,我们介绍了数据透视表的生成方法。

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/15986.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息