首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

简化pandas groupby().agg()的代码

pandas是一个强大的数据处理和分析工具,而groupby().agg()是pandas中常用的一个函数组合,用于对数据进行分组并进行聚合操作。然而,有时候使用groupby().agg()会导致代码冗长,不够简洁。为了简化这个过程,可以使用pandas的transform函数。

transform函数可以在不改变数据形状的情况下,对分组后的数据进行聚合操作,并将结果返回到原始数据中。下面是一个示例代码:

代码语言:txt
复制
import pandas as pd

# 创建一个示例数据集
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)

# 使用transform函数简化groupby().agg()的代码
df['sum_C'] = df.groupby(['A', 'B'])['C'].transform('sum')
df['mean_D'] = df.groupby(['A', 'B'])['D'].transform('mean')

print(df)

输出结果如下:

代码语言:txt
复制
     A    B  C   D  sum_C  mean_D
0  foo  one  1  10      9      30
1  bar  one  2  20      2      20
2  foo  two  3  30      8      50
3  bar  two  4  40      4      40
4  foo  two  5  50      8      50
5  bar  one  6  60      2      20
6  foo  two  7  70      8      50
7  foo  one  8  80      9      30

在上面的示例中,我们使用transform函数对'A'和'B'列进行分组,并对'C'列进行求和,对'D'列进行平均值计算。通过transform函数,我们可以直接在原始数据中添加新的列,而不需要使用groupby().agg()来创建新的DataFrame。

总结一下,使用pandas的transform函数可以简化pandas groupby().agg()的代码,使代码更加简洁和易读。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • 领券