python groupby函数应用
时间: 2023-08-23 13:04:27 浏览: 89
`groupby`函数是 pandas 库中常用的函数,用于按照指定的列或多个列对数据进行分组。一旦数据被分组,可以对每个组应用各种操作,例如聚合函数、转换函数、筛选等。
以下是一些常见的使用示例:
1. 按照单个列进行分组并应用聚合函数:
```python
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'B', 'B', 'C', 'C'],
'value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按照 group 列进行分组,并计算每组的平均值
grouped = df.groupby('group')
result = grouped.mean()
print(result)
```
输出结果:
```
value
group
A 15
B 35
C 55
```
2. 按照多个列进行分组并应用聚合函数:
```python
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'B', 'B', 'C', 'C'],
'category': ['X', 'Y', 'X', 'Y', 'X', 'Y'],
'value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 按照 group 和 category 列进行分组,并计算每组的总和
grouped = df.groupby(['group', 'category'])
result = grouped.sum()
print(result)
```
输出结果:
```
value
group category
A X 10
Y 20
B X 30
Y 40
C X 50
Y 60
```
3. 应用自定义函数进行数据转换:
```python
import pandas as pd
# 创建示例数据
data = {'group': ['A', 'A', 'B', 'B', 'C', 'C'],
'value': [10, 20, 30, 40, 50, 60]}
df = pd.DataFrame(data)
# 自定义函数将每个组的值减去平均值
def subtract_mean(group):
group['value'] = group['value'] - group['value'].mean()
return group
# 按照 group 列进行分组,并应用自定义函数
result = df.groupby('group').apply(subtract_mean)
print(result)
```
输出结果:
```
group value
0 A -5.0
1 A 5.0
2 B -5.0
3 B 5.0
4 C -5.0
5 C 5.0
```
以上是 `groupby` 函数的一些常见用法示例,你可以根据具体需求选择合适的聚合函数或转换函数对数据进行处理。
阅读全文