当前位置: 代码迷 >> 综合 >> Pandas Groupby:分割,应用和组合
  详细解决方案

Pandas Groupby:分割,应用和组合

热度:33   发布时间:2024-02-09 04:29:06.0

Groupby:分割、应用和组合

下图清晰地描述了Groupby的过程。
分割步骤将DataFrame按照指定的键分割成若干组。
应用步骤对每个组应用函数,通常是累计、转换或过滤函数。
组合步骤将每一组的结果合并成一个输出数组。

在这里插入图片描述下面我们以下面为例。
原始数据表是这样的。为了展示方便,删除了后面的数据,总共17条数据
在这里插入图片描述
我们先导入数据
在这里插入图片描述我们可以用DataFrame的groupby()方法进行绝大多数常见的分割-应用-组合操作,将需要分组的列名传进去即可:
在这里插入图片描述这里返回的值不是一个DataFrame对象,而是一个DataFrameGroupBy对象。这个对象的魔力在于,你可以将它看成一个特殊形式的DataFrame,里面隐藏着若干组数据,但是在没有应用累计函数之前不会计算。

可以遍历循环分组:
在这里插入图片描述

我们可以对DataFrameGroupBy对象应用累计函数,它会完成相应的应用/组合步骤并生成结果:
在这里插入图片描述Pandas的累计方法
在这里插入图片描述
大家有兴趣的可以多运行试试
在这里插入图片描述如果想多列分组的话,直接以逗号分隔

在这里插入图片描述我们再介绍一下GroupBy对象的aggregate(),filter(),transform()和apply()方法。我们先构建一个DataFrame

在这里插入图片描述1、累计
我们目前熟悉的groupby累计方法只有sum()和median()之类的简单函数,但是aggregate()其实可以支持更复杂的操作,比如字符串、函数、或者函数列表,并且能一次性计算所有累计值。

在这里插入图片描述也可以通过Python字典指定不同列需要累计的函数:

在这里插入图片描述
2 过滤
过滤操作可以让你按照分组的属性丢弃若干数据。例如,A组“data2"列的标准差不大于4,所以被丢弃了。

在这里插入图片描述3 转换
常见的例子就是将每一组的样本数据减去各组均值,实现标准化
在这里插入图片描述4 应用
apply()方法让你可以在每个组上应用任意方法。
在这里插入图片描述

  相关解决方案