利用多个自定义函数聚合操作agg和groupby怎么写
要利用多个自定义函数进行聚合操作,可以使用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
以上代码示例演示了如何使用多个自定义函数进行聚合操作。您可以根据自己的需求定义不同的自定义函数,并将它们应用于不同的列。
原文地址: http://www.cveoy.top/t/topic/ja3H 著作权归作者所有。请勿转载和采集!