大家好,在数据分析中,需要对数据进行分组统计与计算,Pandas的groupby功能提供了强大的分组功能。transform方法是groupby中常用的转换方法之一,它允许在分组的基础上进行灵活的转换和计算,并将结果与原始数据保持相同的结构。因此,transform非常适合需要将计算结果返回到原始DataFrame的情况。
1.transform方法基本概念
transform方法可以对每个分组进行计算,并将结果“广播”回原始DataFrame,使得返回的DataFrame形状与原始数据一致。与其他groupby操作不同,transform返回的数据不会改变原始DataFrame的行数,而是将分组后的计算结果逐行赋值给原始DataFrame。
transform方法的基本语法如下:
DataFrame.groupby('列名')['列名'].transform(func)
-
groupby('列名'):指定需要分组的列。 -
transform(func):对每个分组应用函数func,可以是内置的聚合函数,也可以是自定义函数。
常见的聚合函数包括求均值(mean)、求和(sum)、最大值(max)、最小值(min)等。
2.示例数据集
使用一个包含员工信息的示例数据集,包括员工姓名、部门和薪资信息,方便演示各种transform操作。
import pandas as pd
# 创建示例数据集
data = {
'姓名': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank'],
'部门': ['销售', '销售', 'IT', 'IT', '市场', '市场'],
'薪资': [7000, 6800, 9000, 8500, 7500, 7700]
}
df = pd.DataFrame(data)
print("原始数据集:\n", df)
结果如下所示:
姓名 部门 薪资
0 Alice 销售 7000
1 Bob 销售 6800
2 Charlie IT 9000
3 David IT 8500
4 Eve 市场 7500
5 Frank 市场 7700
3.分组计算并广播结果
假设希望计算每个部门的平均薪资,并将该值赋予每位员工。使用transform方法可以实现这点,计算部门平均薪资并广播:

最低0.47元/天 解锁文章
1679

被折叠的 条评论
为什么被折叠?



