与 Groupby 一起使用的 3 个鲜为人知的 Pandas 函数

2025年1月5日 | 阅读 4 分钟

Python 以其简单性和可读性而闻名,是一种多功能的高级编程语言,它强调代码的可读性和表现力。 它的设计理念强调可读性和易用性,使其非常适合初学者和专业人士。 Python 的优势在于其庞大的通用库,其中包括从 Web 开发到科学计算的各种任务的模块。 它的解释性质和动态类型允许快速原型设计和迭代开发,从而提高生产力。 Python 支持多种编程范式,包括过程式、面向对象和函数式编程,这为开发人员在设计解决方案时提供了灵活性。 此外,其活跃的社区通过广泛的文档、教程和第三方库促进了持续的开发和协助。 Python 的声誉在各个行业持续增长,这得益于其用户友好的语法、强大的环境以及在各个领域(如数据技术、自动化、Web 开发等)中的适用性。

Pandas

Pandas 是一个流行的开源 Python 库,用于数据操作和分析。 它提供了强大的数据结构,包括 `DataFrame` 和 `Series`,以及用于管理结构化数据的各种工具。 Pandas 的一些关键功能和功能包括

  • DataFrame:一种二维分类记录形式,其中包含可能不同类型的列。 它类似于电子表格或 SQL 表,它是 Pandas 中数据操作的主要对象。
  • Series:一个一维分类数组,能够保存任何类型的数据(整数、浮点数、字符串等)。 它就像电子表格中的列表或列。
  • 数据选择:Pandas 允许直观的数据索引和切片,从而可以轻松选择和管理数据的子集。
  • 数据清洗:用于处理缺失数据 (`NaN`)、重复数据和其他数据清洗任务的工具。
  • GroupBy:用于对数据进行分组和对组使用操作的功能。 它对于聚合数据和执行特定于组的计算很有用。
  • 合并和连接:基于一个或多个键组合数据集的工具,类似于 SQL 是操作的一部分。
  • 重塑和透视:用于在长格式和宽格式之间重塑数据并执行透视操作的工具。
  • 时间序列:用于处理日期、时间和时间索引数据的专业功能。
  • 输入/输出:用于在内存中的数据系统和各种文件格式(如 CSV、Excel、SQL 数据库和 HDF5)之间读取和写入数据的工具。
  • 绘图:基于 Matplotlib 构建的基本绘图功能,用于快速数据可视化。

与 Groupby 一起使用的鲜为人知的 Pandas 函数

函数 1:`transform`

Pandas 中的 `transform` 函数用于执行特定于组的计算,并返回一个形状与原始数据帧相同的 DataFrame。 它将聚合的结果公开返回到原始 DataFrame,从而保留索引。

示例

输出

 
   Group  Value  Normalized_Value
0     A     10         -0.927173
1     B     20         -0.277350
2     A     15          1.059626
3     B     25          1.109400
4     A     12         -0.132453
5     B     18         -0.832050   

说明

  • `transform` 独立地将特性(在这种情况下为归一化)应用于每个组。
  • 对于每个组('A' 和 'B'),`lambda x: (x - x.mean()) / x.std()` 计算 z 分数归一化值。
  • 结果 `df['Normalized_Value']` 显示每个组内的归一化值,保留了独特 DataFrame 结构。

函数 2:`filter`

`filter` 特性用于基于组智能属性对组进行子集。 它返回一个 DataFrame,其中包含满足条件的唯一组。

示例

输出

 
  Group  Value
0     A     10
1     B     20
2     A     15
3     B     25
4     A     12
5     B     18   

说明

  • `filter` 将条件 (`lambda x: x['Value'].sum() > 30`) 适用于每个组。
  • 组 'B' 和 'A' 通过清理,因为它们的总和 (20+25 = 45 和 10+ 15+12 = 37) 超过 30。
  • 生成的 `filtered_df` 包含来自组 'A' 和 'B' 的唯一行,其中总和条件为真。

函数 3:`apply`

Pandas 中的 `apply` 函数用途广泛,可与 `groupby` 一起使用,以将自定义特性应用于每个组。 它返回一个 DataFrame、Series 或标量。

示例

输出

 
 Group
A    5
B    7
dtype: int64   

说明

  • `apply(calculate_range)` 将自定义特性 `calculate_range` 应用于每个组。
  • 该函数计算每个组在“值”列中的范围(最大值和最小值之间的差)。
  • 结果 `range_result` 是一个 Series,显示每个组('A' 和 'B')的计算范围。

下一个主题Pandas 面试