python groupby 和apply用法
时间: 2024-12-27 11:21:31 浏览: 7
### pandas库中的`groupby`和`apply`函数
#### `groupby` 函数概述
`groupby` 是 Pandas 中用于数据分组的强大工具。通过此方法可以按照一个或多个键来分割 DataFrame 或 Series 数据结构,这些键可以是函数、数组、列表或是列名。一旦完成分组操作,就可以对各个小组应用聚合、转换或其他计算[^1]。
#### `apply` 函数的作用
`apply` 方法允许用户定义自定义函数并将其应用于整个 DataFrame 的每一行或每一列上;也可以是在经过 `groupby` 处理后的各子集上的复杂运算。这使得处理特定业务逻辑变得非常灵活方便[^2]。
#### 实际案例展示
下面是一个简单的例子说明如何结合使用这两个功能:
假设有一个销售记录表如下所示:
| 序号 | 销售员姓名 | 商品名称 | 数量 |
| -- | ---- |
| 0 | Alice | Apple | 5 |
| 1 | Bob | Banana | 3 |
| 2 | Alice | Orange | 7 |
| 3 | Charlie | Apple | 8 |
现在想要统计每位销售人员卖出的不同种类商品总数量,则可按以下方式实现:
```python
import pandas as pd
data = {'序号': [0, 1, 2, 3],
'销售员姓名': ['Alice', 'Bob', 'Alice', 'Charlie'],
'商品名称': ['Apple', 'Banana', 'Orange', 'Apple'],
'数量': [5, 3, 7, 8]}
df = pd.DataFrame(data)
result = df.groupby(['销售员姓名']).apply(lambda x: sum(x['数量']))
print(result)
```
上述代码先依据 "销售员姓名" 对原始表格进行了分组,之后利用匿名函数 lambda 计算了每组内所有数值型字段(即销量)之和,并最终打印出来结果[^3]。
阅读全文