返回
学习 Pandas GroupBy 的技巧和窍门,优化数据分析工作流程
后端
2023-12-26 17:18:18
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 对象的使用方法,可以显著优化您的数据分析工作流程。