私は次のようなパンダのデータフレームを持っています:
| PLAYER | DATE | SCORE | GAME |
|---------|------------|-------|------|
| Albert | 2020-08-12 | 10 | X |
| Barney | 2020-08-12 | 100 | X |
| Charlie | 2020-08-12 | 1000 | X |
| Albert | 2020-08-13 | 20 | X |
| Barney | 2020-08-13 | 200 | X |
| Charlie | 2020-08-13 | 2000 | X |
| Albert | 2020-08-14 | 30 | Y |
| Barney | 2020-08-14 | 300 | Y |
| Charlie | 2020-08-14 | 3000 | Y |
| Albert | 2020-08-15 | 40 | Y |
| Barney | 2020-08-15 | 400 | Y |
| Charlie | 2020-08-15 | 4000 | Y |
| Albert | 2020-08-16 | 50 | Z |
| Barney | 2020-08-16 | 500 | Z |
| Charlie | 2020-08-16 | 5000 | Z |
| Albert | 2020-08-17 | 60 | Z |
| Barney | 2020-08-17 | 600 | Z |
| Charlie | 2020-08-17 | 6000 | Z |
各プレーヤーの2日間のスコア平均をサブセットとして持つ新しい列を作成しようとしているので、次の結果が得られます。
| PLAYER | DATE | SCORE | GAME | 2-DAY AVG |
|---------|------------|-------|------|-----------|
| Albert | 2020-08-12 | 10 | X | NaN |
| Barney | 2020-08-12 | 100 | X | NaN |
| Charlie | 2020-08-12 | 1000 | X | NaN |
| Albert | 2020-08-13 | 20 | X | 15 |
| Barney | 2020-08-13 | 200 | X | 150 |
| Charlie | 2020-08-13 | 2000 | X | 1500 |
| Albert | 2020-08-14 | 30 | Y | 25 |
| Barney | 2020-08-14 | 300 | Y | 250 |
| Charlie | 2020-08-14 | 3000 | Y | 2500 |
| Albert | 2020-08-15 | 40 | Y | 35 |
| Barney | 2020-08-15 | 400 | Y | 350 |
| Charlie | 2020-08-15 | 4000 | Y | 3500 |
| Albert | 2020-08-16 | 50 | Z | 45 |
| Barney | 2020-08-16 | 500 | Z | 450 |
| Charlie | 2020-08-16 | 5000 | Z | 4500 |
| Albert | 2020-08-17 | 60 | Z | 55 |
| Barney | 2020-08-17 | 600 | Z | 550 |
| Charlie | 2020-08-17 | 6000 | Z | 5500 |
スタックオーバーフローを検索し、Python条件ステートメントとともに、関数で使用groupby()
するコードのいくつかの組み合わせを試しましたrolling.mean(2)
が、失敗しました。
パンダでそれを行う賢い方法はありますか?
これはあなたが望むことをするはずです:
df['2-DAY AVG'] = df.groupby('PLAYER').SCORE.apply(lambda x: x.rolling(2).mean())
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加