【发布时间】:2021-11-07 12:17:51
【问题描述】:
假设我有一个包含两列的表:日期和金额。行数不超过3000。
行日期金额
1 15/05/2021 248
2 16/05/2021 115
3 17/05/2021 387
4 18/05/2021 214
5 19/05/2021 678
6 20/05/2021 489
7 21/05/2021 875
8 22/05/2021 123
.......
我需要添加第三列,它将根据 Amount 列计算修剪平均值。
我将使用这个函数:my_table['TrimMean'] = stats.trim_mean(my_table['Amount'], 0.1),但适合我的问题。
问题是这不是一个固定的范围,而是一个动态的范围,遵循这个逻辑:对于我表中的每一行,修剪平均值将根据 Amount 列的前 90 个值计算,从当前行上方的行。如果值少于 90 个,则使用可用的行数进行计算。
例如TrimMean[1000]=stats.trim_mean(Amount 列中的数组,包含第 910 到 999 行的值) TrimMean[12]=stats.trim_mean(Amount 列中的数组,包含第 1 到 11 行的值)
希望这是有道理的。
有没有什么方法可以简单地计算出来,而不需要逐行迭代?
【问题讨论】:
标签: python pandas calculated-columns calculation