查看原文
其他

Pandas中Groupby分组操作,22个案例,59张图详解 | 图解Pandas-图文第11篇

我是阳哥 Python数据之道 2022-12-28

01写在前面

大家好,我是阳哥,欢迎来到「Python数据之道」。

今天来跟大家分享《图解Pandas》系列图文内容的 第 11 篇,主要介绍 Pandas 中groupby分组操作

本文是付费阅读文章,付费阅读内容包括《图解Pandas》图文干货内容、可以在电脑端观看的视频以及配套的源代码等。


此外,为避免各种不必要的麻烦,微信没有退款机制,付费前请谨慎。

Pandas 是 Python数据分析中用的最多的工具,为了大家能够更好地学习 Pandas,阳哥开始制作 《图解Pandas》 专题系列内容。

《图解Pandas》 最主要的目标,是以视频图解、动态图片等方式呈现,拆解 Pandas 在数据处理过程中的主要知识点,以便大家能进一步了解 Pandas 的使用,形象地介绍 Pandas,进而使大家喜欢上 Pandas 这个工具。

在本文编写时,《图解Pandas》系列已发布的图文如下:

图文链接视频号对应编号
《图解Pandas》内容框架介绍-
图文01-数据结构介绍001
图文02-创建数据对象002
图文03-读取和存储Excel文件003、004
图文04-常见的数据访问005
图文05-常见的数据运算006-008
图文06-常见的数学计算009、010
图文07-常见的数据统计011-015
图文08-常见的数据筛选016-028
图文09-常见的缺失值处理029-034
图文10-数据合并操作035-047

《图解Pandas》图文专题,所有图文及最新的内容可以点击下面的图片进行查看。

点击👉👉👉前往:《图解Pandas》

本次主要介绍 Pandas 中groupby分组操作 ,内容框架如下:

主要内容

该主题包括 10 期视频,在微信视频号「Python数据之道」中发布的对应视频编号为 048057,大家可以前往观看。

注:本文发布时,在视频号中可以观看视频 048,后续将发布 049057


在本文后面内容中可以同时观看视频 048057

扫描下面的二维码,关注视频号,可以观看《图解Pandas》已发布的所有视频以及及时推送最新的视频:

02Groupby分组操作

Python环境

开始之前,按照惯例先介绍下本次内容涉及的 Python 环境,如下:

  • Python 3.8
  • Pandas 1.5.0
  • numpy 1.22.3

我是在 jupyter notebook 中运行代码的,首先引入相关 Python 库:

import pandas as pd
import numpy as np
import sys

print(f"pandas version:{pd.__version__}")
print(f"numpy version:{np.__version__}")
print(f"python version:{sys.version}")

# pandas version:1.5.0
# numpy version:1.22.3
# python version:3.8.2

创建基础数据

在内容介绍过程中,会涉及到不同的数据。咱们先来创建几个 dataframe,也就是“数据框”。

关于创建数据对象的详细介绍,大家可以观看 「图解Pandas」系列的第2期视频

创建 df 如下:

dict1   = ({
    'Courses':["Numpy","Pandas","Java","Pandas","Python","Python",],
    'Teacher':["Jack","Lemon",np.nan,"Lemon","Peter","Lemon"],
    'Fee' :[3000,4500,5000,4000,4900,5000],
    'Duration':['45days','30days','55days','20days','60days','35days'],
    'Discount':[200,300,100,120,200,np.nan]
    })
df = pd.DataFrame(dict1)
df

创建 data2 如下:

dict2 = {
    "a": [8090607389],
    "b": [8075808583],
    "c": [7075807362],
}
data2 = pd.DataFrame(dict2, index=list("efxyz"))
data2

后续,根据实际需要,还会创建其他的一些数据框。

groupby概述

本次groupby分组操作内容介绍分为8个部分,包括:

  • 基础操作
  • 统计函数应用
  • 分组后列的选取
  • 多重索引的应用
  • agg聚合函数
  • apply应用
  • transform应用
  • filter应用

groupby 函数有许多参数可以设置,具体的参数使用,在后面会进一步介绍。

DataFrame.groupby(
    by=None,
    axis=0,
    level=None,
    as_index=True,
    sort=True,
    group_keys=_NoDefault.no_default,
    squeeze=_NoDefault.no_default,
    observed=False,
    dropna=True,
)

咱们先来看 groupby操作的基本原理。

概括地说,groupby操作可分解为三个步骤,包括:

  1. 拆分(split)
  2. 应用(apply)
  3. 合并(combine)

第一步是根据分组目标列,按所在列的数据值将数据框拆分为多组,形成多个子数据框;

第二步是根据groupby后的计算或统计方式,对拆分后的各组进行应用。这里对“Fee” 列求平均值,对 “Discount” 列求和。

第三步是将前一步的应用结果进行合并,形成一个新的数据框。

上面描述的过程,图示如下:

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存