问答 · ANSWER
分组操作——自定义分组及聚合操作是什么?
直接回答
Pandas分组操作的高级应用,包括根据自定义规则(如函数)进行分组,以及使用agg()函数实现灵活多样的聚合计算。
关键要点
- 自定义分组有两种方法:向groupby()传入函数,或先构造分组列再分组。
- agg()函数是灵活聚合的核心,可接受单个函数、函数列表或字典作为参数。
- 使用agg()可一次性对同一列执行多个聚合计算,如同时求最大值、最小值和均值。
- 可以向agg()传入字典,为DataFrame的不同列指定不同的聚合函数。
- 可以编写并使用自定义函数进行聚合,实现非标准的聚合逻辑。
- 方法二(先构造分组列)在工程实践中更常用,因其步骤清晰、便于复用。
怎么选 / 怎么做
自定义分组:
1. 方法一:将分组依据列设为索引,然后向groupby()传入一个函数,该函数应用于索引值并返回分组标签。
2. 方法二:使用apply()等方法在DataFrame中新增一个分组标签列,然后按此列进行常规groupby。
自定义聚合:
- 使用agg()函数,可传入:单个函数(如np.max)、函数列表(如[np.max, np.min, np.mean])、字典(如{'列A': np.mean, '列B': np.max})或自定义函数。
常见问题
什么是自定义分组?
根据业务逻辑(如函数规则)而非列的唯一值对数据进行分组。
agg()函数有什么用?
实现灵活聚合,可一次执行多聚合或为不同列指定不同函数。
如何为不同列指定不同聚合?
向agg()传入字典,键为列名,值为该列的聚合函数。