这是菜鸟学Python的第85篇原创文章 阅读本文大概需要3分钟 后台有好几个小伙伴问我最近是不是偷懒了不更新文章,其实是因为我在写其他的项目比较忙,所以耽误了几天. 前面几篇讲了关于数据分析里面神器Pandas的运用,今天我们继续深入的探寻这个库,看看还有啥高级的好玩的功能。玩过数据库的同学比如SQL或者现在比较火的MongoDb都提供了一些数据的连接,过滤,转换和聚合.这些功能我们强大的Pandas竟然也提供了(逆天了),可以非常方便的帮助我们处理复杂的数据的运算,下面我们就来一起看看吧~~ 一张图总览 如果我们遇到一个复杂的表数据,有很多列选项比如一个棒球队的数据列表,或者是一个餐厅的用餐情况,里面会有很多列的选项,比如,人名,手机号,生日,点餐内容,喜欢的位置,每次几个人来等等,我们在探寻这些数据的内在关系的时候,一定要学会用分组和聚合这两个强大的功能 1.分组功能 比如我们有一组数据:年龄,性别,体重和身高的表数据: a).比如我们按年龄分组,用groupby函数 print df.groupby('Age') >> #看看返回是啥类型 print type(df.groupby('Age')) >> 发现怎么没有啥东西输出呢,因为我们得到是一个GroupBy对象,里面集成很多功能,不信你可以dir(),看一下里面有很多内置的函数. #按年龄分组取均值 #按性别分组: b).上面是从单个维度切入分析,接着按多个维度分析,看看年龄和体重的关系 c).当分组之后列比较多,我们只想看某一列的数据,比如只看'Height'列的均值 d).统计分组之后最大值,最小值和总数 是不是非常清晰和方便啊 2.聚合功能 聚合其实就是把数据分组之后再次进行运算,上面我们用到了一些比如mean,count,max,min这些常见呢,还有一些更猛的,下面一起来看看 a).agg函数(aggregate) 这个函数可以使我们对于不同的列使用不同的函数,简直就是多面手啊 #我们对年龄分组后,我们希望对性别列进行统计个数,对身高和体重列取均值 比如我们看到:10岁的年龄段,平均身高是130cm左右,体重38斤,性别的个数用count统计,其实表明人数有3人 b).apply()函数 比如我们想计算身体质量指数(BMI),可以非常方便的用apply来自定义函数求值 #第一列是年龄 #第二列是index;0,2,5表示第0个/第2个/第5个 #第三列就是BMI指数=体重/身高的平方 然后再排序一下,从大到小排列 好了Pandas分组和聚合就讲到这里了,还有一些函数比如transform和merge,大家可以参考pandas的官方文档,以上就是分组和聚合的一些常见用法,希望大家多加练习,熟练掌握,对后面的数据分析很有帮助。若有什么问题,也可以留言讨论,后面会有一些实战的例子来加深理解和运用~~ 来源 | 菜鸟学Python |
|
来自: 石头p4g54puvpz > 《python》