pandas groupby() 具有自定义聚合函数并将结果放入新列中

pandas

1个回答

写回答

Hhhzzx

2025-07-06 22:05

+ 关注

Pandas
Pandas

使用Pandas的groupby()函数进行数据分组和聚合操作是数据分析中常用的技巧之一。除了内置的聚合函数,我们还可以使用自定义的聚合函数来处理数据,并将结果放入新的列中。本文将介绍如何使用自定义聚合函数,并结合案例代码进行演示。

什么是groupby()函数

在进行数据分析时,我们经常需要根据某个特征对数据进行分组,并对每个分组进行聚合操作,例如求和、计数、平均值等。Pandas的groupby()函数可以实现对数据进行分组并进行聚合操作。

首先,让我们导入Pandas库并创建一个示例数据集:

Python

import Pandas as pd

# 创建示例数据集

data = {'Name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob'],

'Age': [25, 30, 35, 40, 45],

'Salary': [5000, 6000, 7000, 8000, 9000]}

df = pd.DataFrame(data)

接下来,我们可以使用groupby()函数按照Name列进行分组,并计算每个分组的平均年龄和总薪资:

Python

# 按照Name列进行分组,并计算平均年龄和总薪资

result = df.groupby('Name').agg({'Age': 'mean', 'Salary': 'sum'})

print(result)

运行上述代码,我们可以得到以下结果:

Age Salary

Name

Alice 32.5 13000

Bob 37.5 15000

Charlie 35.0 7000

可以看到,groupby()函数按照Name列进行了分组,并计算了每个分组的平均年龄和总薪资。这是groupby()函数的基本用法。

自定义聚合函数

除了使用内置的聚合函数,我们还可以使用自定义的聚合函数来处理数据。自定义聚合函数可以根据实际需求进行灵活的数据处理和计算。

下面是一个示例的自定义聚合函数,它可以计算每个分组中年龄最大的人的薪资:

Python

# 自定义聚合函数,计算每个分组中最大年龄的薪资

def max_age_salary(group):

max_age = group['Age'].max()

max_age_salary = group[group['Age'] == max_age]['Salary'].sum()

return max_age_salary

# 按照Name列进行分组,并应用自定义聚合函数

result = df.groupby('Name').apply(max_age_salary)

print(result)

运行上述代码,我们可以得到以下结果:

Name

Alice 8000

Bob 9000

Charlie 7000

dtype: int64

可以看到,自定义聚合函数成功地计算了每个分组中年龄最大的人的薪资,并将结果放入了新的列中。这就是使用自定义聚合函数的方法。

将结果放入新列中

除了将结果放入Series中,我们还可以将结果放入新的列中。下面是一个示例代码,它将自定义聚合函数的结果放入了新的列"Max Age Salary"中:

Python

# 自定义聚合函数,计算每个分组中最大年龄的薪资

def max_age_salary(group):

max_age = group['Age'].max()

max_age_salary = group[group['Age'] == max_age]['Salary'].sum()

return max_age_salary

# 按照Name列进行分组,并应用自定义聚合函数,并将结果放入新列中

df['Max Age Salary'] = df.groupby('Name').apply(max_age_salary)

print(df)

运行上述代码,我们可以得到以下结果:

Name Age Salary Max Age Salary

0 Alice 25 5000 8000

1 Bob 30 6000 9000

2 Charlie 35 7000 7000

3 Alice 40 8000 8000

4 Bob 45 9000 9000

可以看到,结果成功地放入了新的列"Max Age Salary"中。

本文介绍了如何使用Pandas的groupby()函数进行数据分组和聚合操作,并使用自定义聚合函数将结果放入新的列中。通过自定义聚合函数,我们可以根据实际需求进行灵活的数据处理和计算。这为我们进行更深入的数据分析提供了便利。

通过本文的介绍和示例代码,相信读者对使用自定义聚合函数并将结果放入新列中有了更清晰的理解。希望本文能够对读者在数据分析中的实际应用有所帮助。

举报有用(4)分享收藏

Copyright © 2025 IZhiDa.com All Rights Reserved.

知答 版权所有 粤ICP备2023042255号