
Pandas
根据 DataFrame 减去分组平均值
在数据分析和处理中,经常需要对 DataFrame 进行分组计算,以便更好地理解和分析数据。一种常见的需求是将 DataFrame 中的每个分组减去该分组的平均值,以得到相对于平均值的差异。本文将介绍如何使用 Pandas 库实现这一操作,并提供一个案例代码来帮助理解。首先,我们需要导入 Pandas 库,并创建一个示例 DataFrame。假设我们有一份销售数据,其中包含了不同地区的销售额信息。我们希望将每个地区的销售额减去该地区销售额的平均值,以得到相对于平均值的差异。Pythonimport Pandas as pd# 创建示例 DataFramedata = {'地区': ['A', 'A', 'B', 'B', 'C', 'C'], '销售额': [100, 150, 200, 250, 300, 350]}df = pd.DataFrame(data)接下来,我们可以使用 groupby 函数将 DataFrame 按照地区进行分组。然后,使用 transform 函数并传入 lambda 表达式来计算每个分组的平均值,并将结果减去原始数据。Python# 分组减去平均值df['销售额差异'] = df['销售额'] - df.groupby('地区')['销售额'].transform(lambda x: x.mean())现在,我们已经成功地将 DataFrame 中的每个分组减去了该分组的平均值。销售额差异 列中的值表示每个地区的销售额与该地区销售额的平均值之间的差异。案例代码下面是完整的案例代码,展示了如何根据 DataFrame 减去分组平均值。Pythonimport Pandas as pd# 创建示例 DataFramedata = {'地区': ['A', 'A', 'B', 'B', 'C', 'C'], '销售额': [100, 150, 200, 250, 300, 350]}df = pd.DataFrame(data)# 分组减去平均值df['销售额差异'] = df['销售额'] - df.groupby('地区')['销售额'].transform(lambda x: x.mean())print(df)运行以上代码,我们将得到以下输出结果:地区 销售额 销售额差异0 A 100 -25.01 A 150 25.02 B 200 -25.03 B 250 25.04 C 300 -25.05 C 350 25.0从输出结果可以看出,每个地区的销售额差异被成功计算出来,并以新的一列
销售额差异 的形式呈现。本文介绍了如何使用 Pandas 库对 DataFrame 进行分组计算,并将每个分组的值减去该分组的平均值。通过减去分组平均值,我们可以得到相对于平均值的差异,有助于进一步分析和理解数据。以上案例代码可以帮助读者更好地理解和应用这一操作。Copyright © 2025 IZhiDa.com All Rights Reserved.
知答 版权所有 粤ICP备2023042255号