📅  最后修改于: 2023-12-03 15:06:46.763000             🧑  作者: Mango
在数据分析中,经常需要将数据按照某一列进行分组,并对每组数据应用一定的函数来估算数据。这时候,就可以使用 pandas 中的 groupby 和 transform 函数来完成。
groupby 函数用于将数据按照某列进行分组,例如按照城市分组。而 transform 函数则可以在分组的情况下对每个分组应用一定的函数并返回一个 Series 或 DataFrame。
import pandas as pd
# 创建示例数据
data = {
'city': ['北京', '上海', '广州', '深圳', '北京', '上海', '广州', '深圳'],
'year': [2020, 2020, 2020, 2020, 2021, 2021, 2021, 2021],
'sales': [50, 60, 45, 80, 70, 65, 55, 90]
}
df = pd.DataFrame(data)
# 按照城市分组并计算平均销售额
df['mean_sales'] = df.groupby('city')['sales'].transform('mean')
print(df)
输出:
city year sales mean_sales
0 北京 2020 50 60.0
1 上海 2020 60 62.5
2 广州 2020 45 50.0
3 深圳 2020 80 85.0
4 北京 2021 70 60.0
5 上海 2021 65 62.5
6 广州 2021 55 50.0
7 深圳 2021 90 85.0
在上面的代码片段中,我们首先创建了一个示例数据集,并使用 groupby 函数按照 city 列进行分组,然后使用 transform 函数计算每个城市的平均销售额,并将结果添加为新的一列 mean_sales。
groupby 和 transform 函数通常用于计算每个分组的中心化指标,例如每个分组的均值、标准差等等。利用这些中心化指标,我们可以更好地了解每个分组的数据分布,从而做出更准确的数据分析和决策。同时,由于 transform 函数返回的结果与原始数据的形状相同,因此在数据可视化、机器学习等方面也有广泛的应用。