平均值相同的两组数据该如何进行分组?

数据聚合与分组运算——GroupBy技术(1),有需要的朋友可以下。

pandas了灵活高效的groupby,它使你能以一种自然的方式对数据集切片、切块、等操作。

  • 根据或多个键(可以是、数组或DataFrame列名)拆分pandas对象。
  • 计算分组,如计数、平均值、标准差,或。
  • 对DataFrame的列应用各种各样的。
  • 应用组内转换或其他运算,如规格化、线性回归、排名或选取子集等。
  • 执行分位数分析其他分组分析。

1、分组键可以有多种形式,且类型不必相同

  • 列表或数组,其长度与待分组的轴一样。
  • 字典或Sers,给出待分组轴上的值与分组名之对应关系。
  • ,用于处理轴索引或索引中的各个。
  • 后三种都只是快捷方式而已,其最终目的仍然是产生一组用于拆分对象的值。

    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关键字传入级别编号或:

1、首先新建一个表格,我这里做的是两个表格在一起的,这城用的都是一些简单的数据

2、然后利用鼠标 选中右边的这个表,不要把上面的那个金额给选择上了,再利用鼠标点击上面的图表

3、在点击了图表之后就会有一个选项了,选择簇形状的然后点击确定就可以了

4、然后界面上就会自动跳出这个图表的了,这个应该是大家非常熟悉的操作了

5、然后鼠标右键点击这个图表,就会出现下面的选项进行选择数据,接着就会跳出一个界面来

6、然后就选择上面的轴标签进行编辑,就是点击类别的右边那个笔处

7、这里就直接利用鼠标将这个上面的月份进行选择中就可以了

8、然后按确实就可以了然后对应着的界面和图表都会自动更改好了,然后点击确定就可以了

9、接着还是跟刚才一样的鼠标右键点击图表,然后还是出现刚才的那个界面

10、这里就是利用鼠标 点击那个添加的按扭了

11、然后跳出的一个界面就是对应着江西的那个了,然后这里就是需要对应的进行选择了

12、选择之后就点击确定然后就会自动的出现在最下面就会有一个“江西”的字样出来了,然后图表里面也会出现新的数据图了,然后点击确实就可以了

13、然后选择中这个添加的数据组,鼠标右击接着就选择下面的更改系列图表类型

14、将最下面的那个“江西”选择为折线形的了,然后图表里面的也自动成了折线形的了,这里操作之后面添加的就会自动的转为折线形的了

15、接着还是鼠标右击图表中的折线然后选择下面的“设置数据系列格式”然后图表的右边就自动的出来一个次坐标轴了

16、再接着就是跟前面操作的方法一样的,将这里面“深圳,上海,北京”进行一对一的添加就可以了

17、然后就会自动的以折线的呈现在图表中的,这样很好的将两个图表呈现在一个表格中了如图所示

SQL经常将聚合函数与GROUP BY进行组合,对数据进行分组统计分析,python在分析数据中也可以实现相同的功能,而且python也是用GROUPBY

  • 如果是基于单列进行分组,括号中可以填入列名,如'用户类型',也可以填入Series,如df['用户类型']
  • 如果是基于多列进行分组,括号中可以填入列名组成的列表,如["用户类型","区域"],也可以填入Series组成的列表,如[df["用户类型"],df["区域"]

df.groupby()生成的也是DataFrame,有时可能需要在统计分析前选择列,可按照筛选列的方法进行操作,具体见,不设置筛选时,默认是选择全部列

例如你只需要对7月销售额进行统计分析,可以写成df.groupby("用户类型")["7月销售额"]

  • 对选择出来的列进行单一统计
  • 对选择出来的列进行多种统计,此时需要借助aggregate方法,对分组后选择的列同时进行多种统计
  • 对选择出来的列,不同列进行不同的统计,如一个列进行求和,一个列进行求平均,仍需要借助aggregate方法,不过这个时候需要传入以列名为键,统计函数为值的字典

默认以分组中的某列或某些列为索引,但有时候我们并不想要这样的索引,此时有两种方法处理:

我要回帖

更多关于 分组数据如何求平均值 的文章

 

随机推荐