pandas方法 groupby函数
时间: 2024-08-09 15:01:30 浏览: 35
`groupby()` 函数是 `pandas` 库中用于数据分组并计算的数据操作工具。它是数据分析过程中非常核心的功能之一,在对数据集进行聚合、分析等操作时极为有用。
### 使用场景
当你需要按照某种标准(如某个列的值、时间范围、类别等)将数据分为不同的组,并在每个组上进行一些统计运算(如求和、平均值、计数等),此时 `groupby()` 就是一个非常实用的工具。
### 基本语法:
```python
df.groupby(by=column_name).agg([func1, func2])
```
其中,
- `df` 表示 DataFrame 对象。
- `by=column_name` 指定了用于分组的列名。
- `.agg()` 后面可以传入一个字典,包含多个聚合函数及其应用目标。例如,你可以同时计算每个分组的平均值、最大值、最小值等。
### 示例:
假设我们有一个名为 `sales_data` 的 DataFrame 包含日期 (`Date`) 和销售额 (`SalesAmount`) 两个字段,现在想要按月份分组查看每个月的总销售额。
```python
import pandas as pd
# 创建示例数据
data = {
'Date': ['2023-01-05', '2023-02-10', '2023-01-15', '2023-02-20', '2023-01-25'],
'SalesAmount': [100, 200, 150, 250, 120]
}
df = pd.DataFrame(data)
# 将 Date 列转换为 datetime 类型便于操作
df['Date'] = pd.to_datetime(df['Date'])
# 使用 groupby() 按月份分组并计算总销售额
grouped_sales = df.groupby(df['Date'].dt.month)['SalesAmount'].sum()
print(grouped_sales)
```
这个例子展示了如何利用 `groupby()` 和 `.sum()` 聚合函数按月汇总销售数据。
###
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)