小编Jor*_*šis的帖子

如何实现滚动均值忽略空值

我正在尝试计算 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。

python pandas python-polars

5
推荐指数
1
解决办法
338
查看次数

标签 统计

pandas ×1

python ×1

python-polars ×1