📜  使用 groupby 和 transform 估算数据 - Python (1)

📅  最后修改于: 2023-12-03 15:06:46.763000             🧑  作者: Mango

使用 groupby 和 transform 估算数据 - Python

在数据分析中,经常需要将数据按照某一列进行分组,并对每组数据应用一定的函数来估算数据。这时候,就可以使用 pandas 中的 groupby 和 transform 函数来完成。

如何使用 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

groupby 和 transform 函数通常用于计算每个分组的中心化指标,例如每个分组的均值、标准差等等。利用这些中心化指标,我们可以更好地了解每个分组的数据分布,从而做出更准确的数据分析和决策。同时,由于 transform 函数返回的结果与原始数据的形状相同,因此在数据可视化、机器学习等方面也有广泛的应用。