【基础】Pandas库应用:数据分组与聚合操作
发布时间: 2024-06-24 14:56:17 阅读量: 64 订阅数: 128
![【基础】Pandas库应用:数据分组与聚合操作](https://c8j9w8r3.rocketcdn.me/wp-content/uploads/2019/10/pandas-python-group-by-named-aggregation-update-1024x451.jpg)
# 1. Pandas库简介**
Pandas是一个强大的Python库,专门用于处理和分析数据。它提供了一系列高效且易于使用的工具,使数据科学家和分析师能够轻松地处理和操作各种格式的数据。
Pandas库的主要功能之一是其数据结构——DataFrame。DataFrame是一个表格状的数据结构,类似于电子表格,其中每一行代表一个观测值,每一列代表一个变量。Pandas库提供了丰富的函数和方法,使您可以轻松地创建、操作和分析DataFrame。
此外,Pandas库还支持各种数据操作,包括数据分组、聚合、清洗和可视化。这些功能使Pandas成为数据分析和探索的理想工具。
# 2. 数据分组与聚合操作
### 2.1 分组操作
#### 2.1.1 groupby()函数
Pandas库中的`groupby()`函数用于根据指定列或多个列对数据进行分组。其语法格式为:
```python
df.groupby(by=column_name)
```
其中:
- `df`:要分组的数据框
- `by`:指定分组依据的列名或列名列表
**代码块:**
```python
import pandas as pd
df = pd.DataFrame({
'name': ['John', 'Mary', 'Peter', 'Susan', 'Tom'],
'age': [20, 25, 30, 35, 40],
'city': ['New York', 'London', 'Paris', 'Berlin', 'Rome']
})
grouped_df = df.groupby(by='city')
```
**逻辑分析:**
上述代码将`df`数据框按`city`列进行分组,并将分组结果存储在`grouped_df`中。
#### 2.1.2 分组后的数据操作
对数据分组后,可以对每个分组的数据进行各种操作,如:
- 求和:`grouped_df.sum()`
- 求平均值:`grouped_df.mean()`
- 求最大值:`grouped_df.max()`
- 求最小值:`grouped_df.min()`
**代码块:**
```python
# 求每个城市中年龄的平均值
average_age_by_city = grouped_df['age'].mean()
```
**逻辑分析:**
上述代码对每个城市的分组数据求取年龄列的平均值,并将结果存储在`average_age_by_city`中。
### 2.2 聚合操作
#### 2.2.1 聚合函数
Pandas库提供了丰富的聚合函数,用于对分组后的数据进行聚合计算。常用的聚合函数包括:
| 函数 | 描述 |
|---|---|
| `sum()` | 求和 |
| `mean()` | 求平均值 |
| `max()` | 求最大值 |
| `min()` | 求最小值 |
| `count()` | 求数量 |
#### 2.2.2 聚合操作的应用
聚合操作可以应用于分组后的数据,对每个分组的数据进行聚合计算。其语法格式为:
```python
grouped_df.agg(aggregation_function)
```
其中:
- `grouped_df`:分组后的数据框
- `aggregation_function`:聚合函数
**代码块:**
```python
# 求每个城市中年龄的平均值和最大值
age_stats_by_city = grouped_df['age'].agg(['mean', 'max'])
```
**逻辑分析:**
上述代码对每个城市的分组数据求取年龄列的平均值和最大值,并将结果存储在`age_stats_by_city`中。
**mermaid流程图:**
```mermaid
graph LR
subgraph 分组
A[groupby()] --> B[分组后的数据]
end
subgraph 聚合
B[分组后的数据] --> C[聚合函数] --> D[聚合结果]
end
```
# 3.1
0
0