zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Pandas实用技巧:SAC机制!

2023-02-25 17:58:47 时间

本文转载自微信公众号「尤而小屋」,作者Peter  。转载本文请联系Peter的公众号。

大家好,我是Peter~

本文给大家介绍的是Pandas中非常实用的SAC过程。首先我们需要明白什么是SAC机制

图片

SAC

SAC指的是分组操作中的 Split-Apply-Combine 3个过程,分别代表的数据的切割、应用和组合。

1、Split:切割的过程,就是通过某个指定的信息进行分组,生成不同的组别

2、Apply:应用的过程,对不同的组别使用不同的功能函数,比如求和、求均值、最值等;函数可以python、pandas等内置函数,也可以是自定义的函数来实现各种功能等

3、Combine:组合的过程,将Apply应用之后的结果再次组合在一起,得到最终的结果

通常情况下,SAC过程都是需要和groupby函数联合使用。

图解SAC

下面有两张图能够解释SAC的过程。

图片

图1

图1中,我们将数据进行group分组操作,切分成3种颜色,3种颜色代表3个不同的组别;对3个不同的组别使用函数foo(),函数可以内置或者自定义。

最终将3个组别应用了foo函数之后的结果进行组合。下面给了一个例子:

图片

图2

  • key是待切分的字段,data是待应用的数据
  • Split过程:通过ABC分成3个组别
  • Apply过程:3个组别应用某个函数规则
  • Combine过程:将求和(sum就是指定规则)的结果组合在一起

Pandas应用SAC

在这里我们使用鸢尾花iris数据集来解释:

import pandas as pd
import numpy as np
import seaborn as sns

iris = sns.load_dataset("iris")
iris.head() # 前5条

图片

iris.shape

# (150,5

这个数据集总共是150条,我们随机取出10条

图片

下面是SAC过程:

图片

df1中我们使用的求和,df2中使用的是求均值。

在后面的文章会介绍:

  • groupby对象的内部机制
  • 如何通过agg函数来实现对不同的字段指定不同的函数
  • 如何对分组数据实现过滤filter​