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

如何将Pandas groupby结果广播到所有行?

在Pandas中,可以使用transform函数将groupby结果广播到所有行。transform函数可以将一个函数应用于每个分组,并将结果广播到原始DataFrame的所有行。

具体步骤如下:

  1. 使用groupby函数对DataFrame进行分组,指定要分组的列。
  2. 在分组对象上调用transform函数,并传入要应用的函数。
  3. 在函数中,可以使用broadcast函数将分组结果广播到所有行。

下面是一个示例代码:

代码语言:txt
复制
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]}
df = pd.DataFrame(data)

# 使用groupby函数对'A'列进行分组,并计算每个分组的平均值
grouped = df.groupby('A')['C'].transform('mean')

# 将分组结果广播到所有行
df['group_mean'] = grouped

print(df)

输出结果如下:

代码语言:txt
复制
     A    B  C  group_mean
0  foo  one  1    4.666667
1  bar  one  2    4.000000
2  foo  two  3    4.666667
3  bar  two  4    4.000000
4  foo  two  5    4.666667
5  bar  one  6    4.000000
6  foo  two  7    4.666667
7  foo  one  8    4.666667

在这个例子中,我们对'A'列进行分组,并计算每个分组的平均值。然后使用transform函数将平均值广播到原始DataFrame的所有行,创建了一个新的列'group_mean'。

推荐的腾讯云相关产品:腾讯云数据库TDSQL,产品介绍链接地址:https://cloud.tencent.com/product/tdsql

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

相关·内容

领券