在Pandas GroupBy对象上使用'apply'的替代方法是使用'agg'方法。'agg'是'aggregate'的缩写,它可以在GroupBy对象上应用多个聚合函数,并返回一个包含聚合结果的DataFrame。
'agg'方法的语法如下:
grouped_df.agg(func)
其中,'grouped_df'是GroupBy对象,'func'是一个聚合函数或一组聚合函数。
'agg'方法可以接受多种形式的聚合函数,包括:
下面是一些示例:
import pandas as pd
# 创建一个示例DataFrame
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(data)
# 使用'agg'方法计算每个组的平均值和总和
grouped = df.groupby('A')
result = grouped.agg(['mean', 'sum'])
print(result)
输出:
C D
mean sum mean sum
A
bar 4.0 12 40 120
foo 4.8 24 40 200
# 定义一个自定义聚合函数,计算每个组的中位数
def median_func(x):
return x.median()
# 使用'agg'方法应用自定义聚合函数
result = grouped.agg(median_func)
print(result)
输出:
C D
A
bar 3.5 30
foo 4.5 40
# 定义一个字典,指定不同的列应用不同的聚合函数
agg_dict = {'C': 'mean', 'D': ['sum', 'max']}
# 使用'agg'方法应用字典形式的聚合函数
result = grouped.agg(agg_dict)
print(result)
输出:
C D
mean sum max
A
bar 4.0 60 40
foo 4.8 90 80
在使用'agg'方法时,可以根据具体需求选择合适的聚合函数,并根据需要对不同的列应用不同的聚合函数。对于更复杂的聚合操作,可以使用自定义聚合函数来实现。
云+社区技术沙龙[第14期]
T-Day
云+社区技术沙龙第33期
云+社区技术沙龙[第11期]
云原生正发声
Techo Day
云+社区沙龙online [国产数据库]
DB・洞见
TC-Day
TC-Day
DBTalk
领取专属 10元无门槛券
手把手带您无忧上云