Pandas
的级联,这一节从如何在DataFrame
中处理重复数据开始。DataFrame
中查找不重复的数据Pandas
之前,我个人对这类数据的处理是利用集合set
的元素唯一性来实现,这样需要写不少的代码,但在Pandas
中,只是一个函数即可搞定,下面我们来举例说明:比如我们要查找列col2
中的不重复数据,如果用set
集合实现,我是这样子做的:如果用Pandas
来完成上述功能,只用一句即可:如果要统计不重复数的个数,也只需要一句即可:要统计某一列数据中数字出现的频率,原来我只能是用字典来实现,代码如下:若用Pandas
来处理,还是一条语句即可:从上述例子可以看出,采用Pandas
来对数据处理,可以用很简洁的方式代替原本需要组合语句才能实现的功能。下面我们再来看看对数据的批处理。apply
方法apply
、map
等函数,在本公众号前面的文章中有介绍过,在Pandas
中,也实现了apply
函数,下面举例说明:在上述例子中,我们自定义了一个求平方的函数,然后将刚才定义的数据框架的第1列数据分别应用到这个求平方函数中,即可得到该列每个数的平方,当然也可以用Python
中内置的函数,比如对第3列数据求每个字符串的长度:当然,我们还可以在apply
中直接嵌入lambda
函数:获取DataFrame
属性有时候我们要得到DataFrame
的列名和行名,这时就要用到获取其属性的方法,下面举例说明:从上述输出结果来看,其列名是一个Index
类型的数据,由于在定义DataFrame
时,我们没有为其指定index
选项,因此,它的Index
采用的是Pandas
默认的RangeIndex
数字序列。Excel
中可以以指定列对数据集排列,Pandas
中也有类似的功能:当然也可以逆向排序,此时只需要为其指定一个参数ascending=False
即可,它的默认值是True
,即默认从小到大,下面显示其逆序排列:从上述结果输出可知,sort_values
会生成新的数据框架,不会修改原数据,如果要修改原数据,则需要inplace=True
,这个在之前的学习笔记中也提到有类似的函数也采用的是这种处理方式。恰好够用的Pandas
子集的时候,我们介绍过在Pandas
中,查找空值有两个函数,一是isna
,一是isnull
,由于在DataFrame
中是用numpy
中的nan
来表示空值,因此我们推荐只用isna
来查询空值,比如构建一个含空值的数据集如下:对其查询空值:数据透视表(pivot table
)熟悉Excel
的同学一定对其中的数据透视表印象深刻,它可将原数据概述化(summarizes
)为另一个表,在新的表中,可以很容易对进行分类、切片、过滤、排序、计数等等,下面我们来看一下Pandas
中的透视表是如何创建的。先构建一个新的数据框架:创建一个透视表要用到函数.pivot_table
,下面我们将根据上面的DataFrame
来创建一个透视表:pivot_table
的参数values
是要透视的数据点,index
是指定的关键列,columns
代表应该被分析的列,比如上面生成的透视表第一行,即是棕色的狗对应的x
按D
列值来算是1,而对应的y
按D
列值来算是3。因为黑色的狗没有对应的y
,因此第二行中y
列下为NaN
。其余类似。Pandas
中的数据去重进行了分析,又探索了apply
函数的应用,接着对于数据的排序进行了说明,在文章的最后,我们介绍了数据透视表的生成方法。版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态