pandas ログデータを一定期間ごとに集計

pandas ログデータを一定期間ごとに集計

pandasでログデータから特定データの時間当たり出現回数を集計

↓のようなログデータを一定時間ごとに集計したい。

datetimetype
2017-01-01 00:19:04
2017-01-01 00:57:06
2017-01-01 01:11:50
2017-01-01 01:29:28
2017-01-01 01:36:43
2017-01-01 01:42:17
2017-01-01 01:54:22
2017-01-01 02:10:51
2017-01-01 03:07:43
2017-01-01 03:41:04
2017-01-01 03:57:11
2017-01-01 04:25:50
2017-01-01 04:59:47
2017-01-01 05:01:06
2017-01-01 05:18:54
2017-01-01 06:28:33
2017-01-01 06:34:22
2017-01-01 07:27:21
2017-01-01 08:19:43
2017-01-01 09:07:34

やりかた

日付データのformatを”datetime”に変更。

フォーマット指定するやつ↓

  • %Y: 年
  • %m: 月
  • %d: 日
  • %H: 時
  • %M: 分
  • %S: 秒
1
2
format='%Y-%m-%d  %H:%M:%S'
df['datetime'] = pd.to_datetime(df['datetime'], format=format)

datetimeをindexに指定する。
datetimeを一時間刻みにする。

1
2
df = df.set_index('datetime')
df = df.to_period('H')

こんな感じになる↓

datetimearea
2017-01-01 00:00
2017-01-01 00:00
2017-01-01 01:00
2017-01-01 01:00
2017-01-01 01:00
2017-01-01 01:00
2017-01-01 01:00
2017-01-01 02:00
2017-01-01 03:00
2017-01-01 03:00
2017-01-01 03:00
2017-01-01 04:00
2017-01-01 04:00
2017-01-01 05:00
2017-01-01 05:00
2017-01-01 06:00
2017-01-01 06:00
2017-01-01 07:00
2017-01-01 08:00
2017-01-01 09:00
1
df["area"].resample('3H').count()

3時間毎に区切って数を表示。

datetimevalue
2017-01-01 00:008
2017-01-01 03:007
2017-01-01 06:004
2017-01-01 09:001

参考

pandas resample document

タグ ,

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×