1

最大情報基準を維持する平滑化関数として pd.rolling_mean() を使用したいと思います。これは、利用可能な情報に応じてエンドポイントが異なる方法で計算されることを意味します。window=3, center=True の例を以下に示します。

For Example: Window = 3, Center = True
ts_smooth[0] = 1/2 * ts[0] + 1/2 * ts[1]
ts_smooth[0<n<N-1] = 1/3 * ts[n-1] + 1/3 * ts[n] + 1/3 * ts[n+1]
ts_smooth[N] = 1/2 * ts[N-1] + 1/2 * ts[N]

パンダでこれを達成する最良の方法は何ですか?

  1. 中点のrolling_mean()を計算します
  2. ウィンドウ サイズに基づいて終了条件を置き換える関数を作成しますか?
4

1 に答える 1

0

次のように、シフト機能を使用できます。

ts_shiftedPlus = ts.shift(1)
ts_shiftedMinus = ts.shift(-1)

ts_smooth = 1/3 * ts_shiftedMinus + 1/3 * ts + 1/3 * ts_shiftedPlus
ts_smooth.ix[0] = 1/2 * ts.ix[0] + 1/2 * ts.ix[1]
N = len(ts)
ts_smooth.ix[N] = 1/2 * ts.ix[N-1] + 1/2 * ts.ix[N]
于 2013-03-19T19:51:57.733 に答える