Pandas最神奇的功能|不知道就out啦

浏览: 1475

image.png

这是菜鸟学Python的第85篇原创文章

阅读本文大概需要3分钟

     后台有好几个小伙伴问我最近是不是偷懒了不更新文章,其实是因为我在写其他的项目比较忙,所以耽误了几天. 前面几篇讲了关于数据分析里面神器Pandas的运用,今天我们继续深入的探寻这个库,看看还有啥高级的好玩的功能。玩过数据库的同学比如SQL或者现在比较火的MongoDb都提供了一些数据的连接,过滤,转换和聚合.这些功能我们强大的Pandas竟然也提供了(逆天了),可以非常方便的帮助我们处理复杂的数据的运算,下面我们就来一起看看吧~~

image.png

的用餐情况,里面会有很多列的选项,比如,人名,手机号,生日,点餐内容,喜欢的位置,每次几个人来等等,我们在探寻这些数据的内在关系的时候,一定要学会用分组和聚合这两个强大的功能

1.分组功能

比如我们有一组数据:年龄,性别,体重和身高的表数据:

image.png

a).比如我们按年龄分组,用groupby函数

print df.groupby('Age')

>>

<pandas.core.groupby.DataFrameGroupBy object at 0x113300810>


#看看返回是啥类型

print type(df.groupby('Age'))

>>

<class 'pandas.core.groupby.DataFrameGroupBy'>

发现怎么没有啥东西输出呢,因为我们得到是一个GroupBy对象,里面集成很多功能,不信你可以dir(),看一下里面有很多内置的函数.

#按年龄分组取均值

image.png

#按性别分组:

image.png

b).上面是从单个维度切入分析,接着按多个维度分析,看看年龄和体重的关系

image.png

c).当分组之后列比较多,我们只想看某一列的数据,比如只看'Height'列的均值

image.png

d).统计分组之后最大值,最小值和总数

image.png

是不是非常清晰和方便啊

2.聚合功能

聚合其实就是把数据分组之后再次进行运算,上面我们用到了一些比如mean,count,max,min这些常见呢,还有一些更猛的,下面一起来看看

a).agg函数(aggregate)

这个函数可以使我们对于不同的列使用不同的函数,简直就是多面手啊

#我们对年龄分组后,我们希望对性别列进行统计个数,对身高和体重列取均值

image.png

比如我们看到:10岁的年龄段,平均身高是130cm左右,体重38斤,性别的个数用count统计,其实表明人数有3人


b).apply()函数

比如我们想计算身体质量指数(BMI),可以非常方便的用apply来自定义函数求值

image.png

#第一列是年龄

#第二列是index;0,2,5表示第0个/第2个/第5个

#第三列就是BMI指数=体重/身高的平方


然后再排序一下,从大到小排列

image.png

好了Pandas分组和聚合就讲到这里了,还有一些函数比如transform和merge,大家可以参考pandas的官方文档,以上就是分组和聚合的一些常见用法,希望大家多加练习,熟练掌握,对后面的数据分析很有帮助。若有什么问题,也可以留言讨论,后面会有一些实战的例子来加深理解和运用~~

 长按二维码,关注【菜鸟学python】





推荐 0
本文由 菜鸟学Python 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册