我有以下dataframe,它有一个使用日期的非唯一索引:
column
2019-01-07 NaN
2019-01-08 NaN
2019-01-08 0.02
2019-01-09 31.45
2019-01-10 NaN
2019-01-10 71.87
2019-01-10 90.18
2019-01-11 NaN
2019-01-12 12.67
2019-01-12 5.68
2019-01-12 11.23
2019-01-12 21.67
2019-01-12 14.77
2019-01-12 5.18
2019-01-13 14.38
2019-01-13 NaN
2019-01-13 71.13
2019-01-13 20.02
2019-01-13 103.10
2019-01-14 NaN
2019-01-15 32.48
2019-01-16 37.37
2019-01-16 31.05
2019-01-16 7.00
2019-01-17 NaN
2019-01-17 39.65
2019-01-18 23.68
2019-01-18 0.08
2019-01-18 41.35
2019-01-19 NaN
2019-01-19 45.85
2019-01-19 3.98
2019-01-19 4.60
2019-01-19 NaN
2019-01-19 NaN
2019-01-20 3.60
2019-01-20 5.03
2019-01-20 15.70
我的目标是使用每个日期的所有值计算7天滚动中值,但忽略NaN值
结果数据框应具有唯一的日期索引,滚动中值作为该日期的列值,如下所示:
column
2019-01-13 17.40
2019-01-14 17.40
2019-01-15 20.85
2019-01-16 20.85
2019-01-17 20.02
2019-01-18 20.85
2019-01-19 31.05
2019-01-20 19.69
我不知道如何使用熊猫轻松实现这一点,因此如果有人能提供答案或为我指出正确的方向,我将不胜感激
编辑
为了让事情更清楚,我将解释如何计算单一日期的中位数
使用2019-01-13的日期,滚动中值将需要使用从7天到13天的所有值,不包括NaN值。这意味着第13次中位数计算中需要包含的值为0.02、31.45、71.87、90.18、12.67、5.68、11.23、21.67、14.77、5.18、14.38、71.13、20.02、103.10。13日的中位数为17.4
希望有帮助
如果数据不太长,则可以进行交叉合并:
输出:
rolling
对象是可编辑的,它允许这样的解决方案:顺便说一下,我加载的数据如下:
相关问题 更多 >
编程相关推荐