12
パンダ0.18.1を使用して、1列のデータフレームのローリング平均を取ってみたいと思います。バージョン0.18.0以降、これはrolling()オブジェクトで行われます。これらのローリングオブジェクトのデフォルトは右寄せになります。ローリングオブジェクトを中心値に整列させるには、渡すことができる真偽値の引数、center = Trueがありますが、左揃えの方法はないようです。ここでの例は次のとおりパンダローリングオブジェクトの左揃え
df = pandas.DataFrame({'A': [2,3,6,8,20, 27]})
df
A
0 2
1 3
2 6
3 8
4 20
5 27
標準的な方法を自動的に右に揃え、これは値がサイズ3のウィンドウと最初の二つindeciesでありません。私たちは動作を中央整列させることができる
df.rolling(window=3).mean()
A
0 NaN
1 NaN
2 3.666667
3 5.666667
4 11.333333
5 18.333333
このように:
df.rolling(3).mean()
A
0 3.666667
1 5.666667
2 11.333333
3 18.333333
4 NaN
5 NaN
01:
df.rolling(window=3).mean(center=True)
A
0 NaN
1 3.666667
2 5.666667
3 11.333333
4 18.333333
5 NaN
は、しかし、私が探している本であります
これを行うには、デフォルトの右揃えを使用してから、再度インデックスを作成するか、行の順序を逆にして「右揃え」にします。これは回避する必要がありますまっすぐな操作。
私はそれを行うために、より直接的な方法があった期待していたが、これは、良い解決策です。私は、まだ機能が圧延オブジェクトにないと思います。 – Alex
はい、私はあなたが正しいと思います。私は決してそれを見ない。 – jezrael
私はこの回答を受け入れました。なぜなら、望ましい機能は本当にパンダローリングオブジェクトにはなく、これは最も洗練されたソリューションを提供するからです。この左揃えをもう少し動的に管理したい場合は、ウィンドウサイズを変数wで設定し、.shift()メソッドの引数をw-1とすることができます。 – Alex