资讯专栏INFORMATION COLUMN

数据科学 第 3 章: 9 累计与分组 groupby

wemallshop / 1715人阅读

摘要:聚合后没有用函数,会返回一个用函数后会显示计算结果组合之后,切片,查看的和。可以设定计算方法对列进行了切片,如果的均值小于,则不显示二部的均值低于,所以结果中没有二部数据。

本节学习groupby

引用激励数据,连接数据库jili表(代码省略)
数字简单计算
本节内容前面是运用sum/mean等函数对数字简单计算

jili.mean() #求均值
jili.mean(axis = "columns") #求每行的均值
jili.sum()  #求和
groupby:切片计算

groupby的过程:
分割:把dataframe按指定的键分为若干组
应用:对每个组应用函数,通常为累计、转换或过滤
组合:将每组1的结果合并成一个输出数组。

jili.groupby("dep")  #聚合后没有用函数,会返回一个dataframe
jili.groupby("dep").sum()   #用函数后会显示计算结果

# 组合dep 之后,切片oldrate,查看group的和。这里是字符,所以显示了group的所有值
jili.groupby("dep")["group"].sum()

#组合dep 之后,切片oldrate,查看oldrate的和
jili.groupby("dep")["oldrate"].sum()

# 对每个可以计算的字段进行了描述性统计,中间有省略
# unstack是上一节索引中的内容,是把多重索引转换为行,具体可以看下面没有用unstack的对比。
jili.groupby("dep").describe().unstack()

#对groupby之后的结果,切片allbones字段,进行描述性统计
jili.groupby("dep")["allbones"].describe()

groupby:4 种计算方法 1、aggregate:在groupby之后聚合的值上计算

计算方法。如 sum,count,max,std

2、filter:在原来的每个值上做计算,但是在groupby之后做计算

切片 注意filter切片器中一定要有计算方法(summean之类的),否则会报错。

# aggregate可以设定计算方法
jili.groupby("dep").aggregate(["min","max"])

# filter对allbones列进行了切片,如果dep的allbones均值小于9000,则不显示. 
# 二部的均值低于9000,所以结果中没有二部数据。
jili.groupby("dep").filter(lambda x:x["allbones"].mean() >9000)

3、transform:在原来的每个值上做计算,但是在groupby之后做计算

转换,把原来的值换为计算后的值

jili.groupby("dep").transform(lambda x:x -x.mean()).head(3)  
# x -x.mean()是减取本列的均值

def fun(x):
    x["allbones"] = x["newbones"]-x["oldbones"]
    return x
jili.groupby("dep").apply(fun)
4、apply:

把计算的结果运用到原数据(看下图)

5、高级用法
#组合为两层
jili.groupby(["dep","group"]).mean()

#组合为两层后,只选allbones的值,然后再转换行列
jili.groupby(["dep","group"])["allbones"].sum().unstack()

以上就是groupby的用法,之前跟着视频学过,但看书的话更详细,下节是透视表,拜拜。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/45000.html

相关文章

  • 数据科学 4 1-3 画图的简单设置

    摘要:保存打开执行打开的时候要先加载一个包第二节画个图的方法风格面向对象画图第节简易线型图先设置。是一个可以装图形文字的容器是带有刻度和标签的矩形。 第 4 章是讲用matplotlib画图 期待已久的内容,用可视化展示数据比丢一张数据表给他好的多,在建模的时候先画个图会清晰不少,下面进入正题: 数据源:当然是上一章最后一节的提取了小时的sougou数据 第一节:保存就是教你怎么保存画的图,...

    ShevaKuilin 评论0 收藏0
  • 数据科学系统学习】Python # 数据分析基本操作[四] 数据规整化和数据聚合分组运算

    摘要:数据规整化清理转换合并重塑数据聚合与分组运算数据规整化清理转换合并重塑合并数据集可根据一个或多个键将不同中的行链接起来。函数根据样本分位数对数据进行面元划分。字典或,给出待分组轴上的值与分组名之间的对应关系。 本篇内容为整理《利用Python进行数据分析》,博主使用代码为 Python3,部分内容和书本有出入。 在前几篇中我们介绍了 NumPy、pandas、matplotlib 三个...

    The question 评论0 收藏0
  • 利用Pandas和matplotlib分析我爱我家房租区间频率

    摘要:前几天利用爬取了我爱我家的租房的一些数据,就想着能不能对房租进行一波分析,于是通过书籍和博客等查阅了相关资料,进行了房租的区间分析。 前几天利用python爬取了我爱我家的租房的一些数据,就想着能不能对房租进行一波分析,于是通过书籍和博客等查阅了相关资料,进行了房租的区间分析。不得不说,用python做区间分析比我之前用sql关键字统计区间简单多了,话不多说,上代码 # coding=...

    huayeluoliuhen 评论0 收藏0
  • 【译】技能测试解决方案:Python中的数据科学(三)

    摘要:在关联该数据集时,重复行会带来一定的困扰,为了避免这个困扰,我们只保留重复数据第一个出现的样本。 本文是译文,可以转载,但需注明出处,点击这里可以获取原文,有删减。本系列博文包含四篇文章:【译】技能测试解决方案:Python中的数据科学(一)——Q1-Q15【译】技能测试解决方案:Python中的数据科学(二)——Q16-Q30 【译】技能测试解决方案:Python中的数据科学(三)...

    i_garfileo 评论0 收藏0
  • JavaScript 实现数组更多的高阶函数

    摘要:实现数组更多的高阶函数吾辈的博客原文场景虽说人人平等,但有些人更加平等。若是有一篇适合萌新阅读的自己实现数组更多操作的文章,情况或许会发生一些变化。类似于的初始值,但它是一个函数,避免初始值在所有分组中进行累加。 JavaScript 实现数组更多的高阶函数 吾辈的博客原文: https://blog.rxliuli.com/p/fc... 场景 虽说人人平等,但有些人更加平等。 为...

    aervon 评论0 收藏0

发表评论

0条评论

wemallshop

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<