返回

学习 Pandas GroupBy 的技巧和窍门,优化数据分析工作流程

后端

Pandas GroupBy 简介

Pandas GroupBy 是一个强大的工具,可用于对数据进行分组并执行各种聚合操作。它允许您根据数据中的列值将数据分组,并对每个组执行计算。

创建 GroupBy 对象

要创建 GroupBy 对象,可以使用 Pandas 的 groupby() 方法。该方法接受一个列名或一组列名作为参数,并返回一个 GroupBy 对象。

例如,以下代码将创建一个根据列“性别”分组的 GroupBy 对象:

import pandas as pd

df = pd.DataFrame({'姓名': ['张三', '李四', '王五', '赵六', '钱七'],
                   '性别': ['男', '女', '男', '女', '男'],
                   '年龄': [20, 25, 30, 35, 40]})

groupby_object = df.groupby('性别')

GroupBy 对象的使用

创建 GroupBy 对象后,就可以使用各种方法来执行聚合操作。

聚合函数

GroupBy 对象提供了一系列聚合函数,可以用于对数据进行聚合。这些函数包括:

  • count():计算每个组的元素个数
  • sum():计算每个组的元素之和
  • mean():计算每个组的元素平均值
  • median():计算每个组的元素中位数
  • max():计算每个组的元素最大值
  • min():计算每个组的元素最小值

例如,以下代码使用 mean() 函数计算每个性别组的年龄平均值:

groupby_object.mean()

多列分组

GroupBy 对象还支持多列分组。要对数据进行多列分组,只需将列名列表作为 groupby() 方法的参数即可。

例如,以下代码将数据根据“性别”和“年龄”两列进行分组:

groupby_object = df.groupby(['性别', '年龄'])

过滤分组数据

GroupBy 对象还支持过滤分组数据。要过滤分组数据,可以使用 filter() 方法。该方法接受一个函数作为参数,该函数将应用于每个组,并返回一个布尔值。如果布尔值为 True,则该组将被保留;否则,该组将被丢弃。

例如,以下代码将过滤掉年龄大于 30 岁的组:

groupby_object.filter(lambda x: x['年龄'].mean() > 30)

总结

GroupBy 对象是 Pandas 库中一个强大的工具,可用于对数据进行分组并执行各种聚合操作。掌握 GroupBy 对象的使用方法,可以显著优化您的数据分析工作流程。