↓のようなログデータを一定時間ごとに集計したい。
datetime | area |
---|---|
2017-01-01 00:19:04 | A |
2017-01-01 00:57:06 | B |
2017-01-01 01:11:50 | C |
2017-01-01 01:29:28 | A |
2017-01-01 01:36:43 | A |
2017-01-01 01:42:17 | B |
2017-01-01 01:54:22 | B |
2017-01-01 02:10:51 | C |
2017-01-01 03:07:43 | C |
2017-01-01 03:41:04 | A |
2017-01-01 03:57:11 | A |
2017-01-01 04:25:50 | B |
2017-01-01 04:59:47 | B |
2017-01-01 05:01:06 | C |
2017-01-01 05:18:54 | C |
2017-01-01 06:28:33 | A |
2017-01-01 06:34:22 | B |
2017-01-01 07:27:21 | B |
2017-01-01 08:19:43 | C |
2017-01-01 09:07:34 | C |
日付データのformatを”datetime”に変更。
フォーマット指定するやつ↓
- %Y: 年
- %m: 月
- %d: 日
- %H: 時
- %M: 分
- %S: 秒
1 | format='%Y-%m-%d %H:%M:%S' |
datetimeをindexに指定する。
datetimeを一時間刻みにする。
1 | df = df.set_index('datetime') |
こんな感じになる↓
datetime | area |
---|---|
2017-01-01 00:00 | A |
2017-01-01 00:00 | B |
2017-01-01 01:00 | C |
2017-01-01 01:00 | A |
2017-01-01 01:00 | A |
2017-01-01 01:00 | B |
2017-01-01 01:00 | B |
2017-01-01 02:00 | C |
2017-01-01 03:00 | C |
2017-01-01 03:00 | A |
2017-01-01 03:00 | A |
2017-01-01 04:00 | B |
2017-01-01 04:00 | B |
2017-01-01 05:00 | C |
2017-01-01 05:00 | C |
2017-01-01 06:00 | A |
2017-01-01 06:00 | B |
2017-01-01 07:00 | B |
2017-01-01 08:00 | C |
2017-01-01 09:00 | C |
1 | df["area"].resample('3H').count() |
3時間毎に区切って数を表示。
datetime | value |
---|---|
2017-01-01 00:00 | 8 |
2017-01-01 03:00 | 7 |
2017-01-01 06:00 | 4 |
2017-01-01 09:00 | 1 |