首页 > 解决方案 > 如何更改 DataFrame 列值以便相应地修改平均值?

问题描述

我有一个从Estespark Weather中提取的 Pandas DataFrame,日期为 2009 年 9 月至 2018 年 10 月,平均风速列的平均值为 4.65。我正在接受一个挑战,其中有一个健全性检查,该列的平均值需要为 4.64。如何修改该列的值,使该列的平均值变为 4.64?是否有任何代码解决方案,或者我们必须手动完成?

标签: python

解决方案


我可以看到两种解决方案:

    1. 将该列的每个值减去 0.01 (4.65 - 4.64),例如:
df['AvgWS'] -= 0.01
  • 2 如果您不想更改所有行:找到可以删除的行以获得所需的平均值(如果有的话):
current_mean = 4.65
desired_mean = 4.64
n_rows = len(df['AvgWS'])

df['can_remove'] = df['AvgWS'].map(lambda x: (current_mean*n_rows - x)/(n_rows-1) ==  4.64)

这将在您的数据框中创建一个新的布尔列True,如果删除该行,则该列的其余部分的平均值 = 4.64。如果有多个,您可以分析它们以选择看起来不太重要的一个,然后删除那个。


推荐阅读