我正在尝试计算 RSI 指标。为此,我需要滚动平均损益。
我想计算滚动平均值忽略空值。因此平均值将通过现有值的总和和计数来计算。
例子:
window_size = 5
df = DataFrame(price_change: { 1, 2, 3, -2, 4 })
df_gain = .select(
pl.when(pl.col('price_change') > 0.0)
.then(pl.col('price_change'))
.otherwise(None)
.alias('gain')
)
# UNKOWN HOW TO GET WANTED RESULT:
rol_mean_gain = df_gain.select(
pl.col('gain').rolling_mean(window_size=window_size, ignore_null=True)
)
Run Code Online (Sandbox Code Playgroud)
以便计算 rol_mean_gain:[1, 2, 3, skip, 4] / 4 (not 5)
我知道 Pandas 有.mean(skipna=True)或.apply(pandas.np.nanmean)
但据我所知 Polars 不提供这样的 API。