python - 如何更改 DataFrame 列值以便相应地修改平均值?
问题描述
我有一个从Estespark Weather中提取的 Pandas DataFrame,日期为 2009 年 9 月至 2018 年 10 月,平均风速列的平均值为 4.65。我正在接受一个挑战,其中有一个健全性检查,该列的平均值需要为 4.64。如何修改该列的值,使该列的平均值变为 4.64?是否有任何代码解决方案,或者我们必须手动完成?
解决方案
我可以看到两种解决方案:
-
- 将该列的每个值减去 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。如果有多个,您可以分析它们以选择看起来不太重要的一个,然后删除那个。
推荐阅读
- python - 有没有办法阻止跟随模型中的自我跟随?
- css - CSS Grid 项目仅在 Chrome 中增长到最大高度
- latex - 引用在使用 natbib 包的乳胶中不起作用
- java - PITest 问题:属性“mainClass”是最终的,无法进一步更改
- javascript - 如何检查函数是否被 jest 调用
- javascript - ChartJS:y轴正负部分的两个标题
- python - 影响python日志记录器的导入路径
- android - ListView 项目上的 onClick 侦听器
- python - Python MySQL编程错误:1064(42000),同时使用Flask制作表格
- javafx - Inno Setup 没有从 netbeans 创建 .exe