Pandas 聚合操作:使用自定义函数进行分组计算
要利用多个自定义函数进行聚合操作,可以使用'agg'函数和'groupby'方法。
首先,我们需要定义自定义函数。自定义函数可以是匿名函数或命名函数。例如,我们定义两个自定义函数'mean_plus_median'和'sum_squared':
mean_plus_median = lambda x: x.mean() + x.median()
sum_squared = lambda x: (x**2).sum()
然后,我们可以使用'agg'函数将这些自定义函数应用于'groupby'对象。'agg'函数的参数是一个字典,其中键是要聚合的列名,值是要应用的聚合函数。例如,我们将'mean_plus_median'应用于'col1'列,将'sum_squared'应用于'col2'列:
df.groupby('group_col').agg({'col1': mean_plus_median, 'col2': sum_squared})
这将返回一个新的 DataFrame,其中包含按'group_col'分组的'col1'列的平均值加上中位数,以及'col2'列的平方和。
完整的代码示例:
import pandas as pd
# 定义自定义函数
mean_plus_median = lambda x: x.mean() + x.median()
sum_squared = lambda x: (x**2).sum()
# 创建示例数据
data = {'group_col': ['A', 'A', 'B', 'B', 'B'],
'col1': [1, 2, 3, 4, 5],
'col2': [2, 4, 6, 8, 10]}
df = pd.DataFrame(data)
# 使用agg和groupby进行聚合操作
result = df.groupby('group_col').agg({'col1': mean_plus_median, 'col2': sum_squared})
print(result)
输出结果:
col1 col2
group_col
A 2.5 20
B 6.5 200
以上代码示例演示了如何使用多个自定义函数进行聚合操作。您可以根据自己的需求定义不同的自定义函数,并将它们应用于不同的列。
原文地址: https://www.cveoy.top/t/topic/igE5 著作权归作者所有。请勿转载和采集!