前提・実現したいこと
pandasでgroupbyした各グループ内のデータだけに5分間隔グルーピングを行い、かつパディングしたデータを前後平均で補完したいです。
grouperとinterpolateを組み合わせればできそうだとは思っているものの、組み合わせ方がわからずお知恵をお借りできれば幸いです。
実現したいこと
具体的には以下の処理を行いたいです。
・dateとIDでgroupby
・groupbyしたグループ内のデータに対し、datetimeを5分間隔で周期的にグルーピング
・パディングされた行に対しては、前後平均でvalueの値を埋める
データフレームのイメージは以下です。
■元のデータフレーム
date | ID | datetime | value |
---|---|---|---|
2020/2/1 | 1 | 2020/2/1 9:30:00 | 3 |
2020/2/1 | 1 | 2020/2/1 9:35:00 | 12 |
2020/2/1 | 1 | 2020/2/1 9:50:00 | 6 |
2020/2/1 | 2 | 2020/2/1 9:25:00 | 30 |
2020/2/1 | 2 | 2020/2/1 9:35:00 | 20 |
2020/2/1 | 2 | 2020/2/1 9:40:00 | 25 |
2020/2/2 | 1 | 2020/2/2 9:30:00 | 3 |
2020/2/2 | 2 | 2020/2/2 16:00:00 | 5 |
2020/2/2 | 2 | 2020/2/2 16:10:00 | 12 |
■欲しいデータフレーム(太字が前後平均でパディングされた行)
date | ID | datetime | value |
---|---|---|---|
2020/2/1 | 1 | 2020/2/1 9:30:00 | 3 |
2020/2/1 | 1 | 2020/2/1 9:35:00 | 12 |
2020/2/1 | 1 | 2020/2/1 9:40:00 | 10 |
2020/2/1 | 1 | 2020/2/1 9:45:00 | 8 |
2020/2/1 | 1 | 2020/2/1 9:50:00 | 6 |
2020/2/1 | 2 | 2020/2/1 9:25:00 | 30 |
2020/2/1 | 2 | 2020/2/1 9:30:00 | 25 |
2020/2/1 | 2 | 2020/2/1 9:35:00 | 20 |
2020/2/1 | 2 | 2020/2/1 9:40:00 | 25 |
2020/2/2 | 1 | 2020/2/2 9:30:00 | 3 |
2020/2/2 | 2 | 2020/2/2 16:00:00 | 5 |
2020/2/2 | 2 | 2020/2/1 16:05:00 | 8.5 |
2020/2/2 | 2 | 2020/2/2 16:10:00 | 12 |
よろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/04 01:48