Python 的 pandas 库中的 .groupby() 函数是用来进行分组运算的。该函数可以按照指定的一列或多列的值进行分组,然后对每个组进行相应的聚合操作,例如计算平均值、求和、计数等。本文将介绍 .groupby() 函数的使用方法,并给出一个实例代码来说明其用法。

## 1. pandas 库简介
pandas 是 Python 中一个强大的数据处理库,提供了高性能、易于使用的数据结构,如 Series 和 DataFrame,以及用于数据操作和分析的各种工具和函数。pandas 常被用于数据清洗、数据处理和数据分析等工作,尤其适用于处理结构化数据。

## 2. .groupby() 函数的基本用法
.groupby() 函数是 pandas 库中 DataFrame 和 Series 对象的一个重要方法。它可以根据指定的列或多列的值对数据进行分组,并可对分组后的数据进行相应的统计分析。.groupby() 函数的基本用法如下:

import pandas as pd

# 创建一个DataFrame对象
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
                   'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
                   'C': [1, 2, 1, 2, 1, 2, 1, 2],
                   'D': [10, 20, 30, 40, 50, 60, 70, 80]})

# 使用.groupby()函数对数据进行分组
grouped = df.groupby('A')

# 对每个组进行求和
sum_result = grouped.sum()
print(sum_result)
Python

在上述代码中,首先我们导入了 pandas 库,并创建了一个 DataFrame 对象 df。接着,我们使用 .groupby() 函数对 DataFrame 对象按照列 'A' 的值进行了分组。分组结果存储在 grouped 中。然后,我们调用 grouped 对象的 sum() 方法,对每个分组进行了求和操作。最后,我们打印了求和结果 sum_result。

## 3. 按多列进行分组
除了按单列进行分组外,.groupby() 函数还可以按照多列的值进行分组。示例如下:

# 按多列进行分组
grouped_multi = df.groupby(['A', 'B'])

# 对每个组进行统计分析
count_result = grouped_multi.count()
print(count_result)
Python

在上述代码中,我们传递了一个包含两列('A' 和 'B')的列表给 .groupby() 函数,这样就按照这两列的值进行了分组。然后,我们调用 grouped_multi 对象的 count() 方法对每个分组进行了计数操作,并打印了结果 count_result。

## 4. 对分组结果进行自定义聚合操作
.groupby() 函数还支持对分组结果进行自定义的聚合操作。例如,我们可以使用 lambda 函数对每个分组进行自定义操作,并将结果存储到新的列中。示例如下:

# 对分组结果进行自定义聚合操作
df['E'] = grouped['D'].apply(lambda x: sum(x) - 10)
print(df)
Python

在上述代码中,我们使用 lambda 函数对每个分组中的列 'D' 进行了自定义处理,即求和后减去 10。然后,将处理结果赋值给新的列 'E'。最后,我们打印了 DataFrame 对象 df,其中包含了新的列 'E'。