数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以下。
pandas了灵活高效的groupby,它使你能以一种自然的方式对数据集切片、切块、等操作。
1、分组键可以有多种形式,且类型不必相同
后三种都只是快捷方式而已,其最终目的仍然是产生一组用于拆分对象的值。
2、首先来看看下面简单的型数据集(以DataFrame的形式):
假设你想要按key1分组,并计算data1列的平均值,可以访问data1,并根据key1groupby:
3、如果一次传入多个数组,就会得到不同的结果:
通过两个键对数据了分组,得到的Sers具有层次化索引(由唯一的键对组成):
无论你拿groupby做什么,都有可能会用到GroupBy的size,它可以返回含有分组大小的Sers:
GroupBy对象迭代,可以产生一组二元(由分组名和数据块组成)。看看下面简单的数据集:
-0.592994 b two 对于多重键的情况,的第元素将会是由键值组成的:
对于由DataFrame产生的GroupBy对象,如果用(单个字符串)或一组(字符串数组)列名对其索引,就能实现选取部分列聚合的目的,即:
7、通过字典或Sers分组
除数组以外,分组信息还可以其他形式存在,来看DataFrame示例:
-0..251905 Sers也有同样的,它可以被看做固定大小的映射。对于上面那个例子,如果用Sers作为分组键,则pandas会检查Sers以确保其索引跟分组轴是对齐的:
相较于字典或Sers,Python在定义分组映射关系时可以更有创意且更为抽象。任何被当做分组键的都会在各个索引值上被一次,其返回值就会被用作分组。
具体点说,以DataFrame为例,其索引值为人的名字。假设你希望根据人名的长度分组,虽然可以求取字符串长度数组,但其实仅仅传入len:
将跟数组、列表、字典、Sers混合也不是,因为任何东西最终都会被转换为数组:
层次化索引数据集最的地方在于它能够根据索引级别聚合。要实现该目的,通过level关键字传入级别编号或:
SQL经常将聚合函数与GROUP BY进行组合,对数据进行分组统计分析,python在分析数据中也可以实现相同的功能,而且python也是用GROUPBY
df.groupby()生成的也是DataFrame,有时可能需要在统计分析前选择列,可按照筛选列的方法进行操作,具体见,不设置筛选时,默认是选择全部列
例如你只需要对7月销售额进行统计分析,可以写成df.groupby("用户类型")["7月销售额"]
默认以分组中的某列或某些列为索引,但有时候我们并不想要这样的索引,此时有两种方法处理:
高傑西 回答:4 浏览量:16
是这样的,有以下数据如下a组和b组序数 a b1 11 502 12 553 10 454 13 495 10 536 11 50如何通过Excel或者其它软件将6列分为两组,要求是每组的a的平均值最接近以及b的平均值也最接近。一楼说的还是不太明白,应该是我表述的不清楚,我再用下面的例子说一下。姓名 语文 数学曹一 70 90罗二 60 95张三 70 100李四 50 80王五 90 60黄六 80 70刘七 88 90曾九 90 70莫十 90 90 将这些学生分成两组,使得两组的数学平均成绩和语文平均成绩分别最接近。二楼同志的可以认为我是依据平均分给这些学生分组。当然实际情况中有很多学生,也有很多科目,所以想找个方法来分组,这样的话可以更精确,也可以省很多时间。 当然不必局限于用Excel,其它容易学的软件都可以。
基础入门 讲师: 张光欢
本教程四个模块 《Excel操作技巧》是以Excel2016为工具,主要应用与我们日常办公的数据整理,存储归类等技巧操作,《Excel函数与公式》对我们整理好的数据进行统计分析,《数据透视表》主要是对整理的数据进行分析,《图表呈现》对整理好的数据,做图表呈现,更直观的看懂我们的数据背后的秘密。
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。