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

×