PandasのGroperを使って、集計を楽にする by connvoi on March 31, 2019 PandasのGropperをつかう やりたいこと 時間付きのデータを1時間毎に集計したい時など #元データ date counts 2018-12-01 00:00:00 23.0 2018-12-01 00:00:05 6.0 2018-12-01 00:00:10 9.0 2018-12-01 00:00:15 1.0 2018-12-01 00:00:20 17.0 2018-12-01 00:00:25 4.0 2018-12-01 00:00:30 22.0 ... こうやって5秒間隔でデータが置いてあって、それを1時間ごとに集計したい時とかにGrouperを使うと楽 import pandas as pd df=pd.read_csv('./log/timetest.tsv', sep="\t") #datetime型に変換してる。 df['date']=pd.to_datetime(df['date']) print(df.groupby(pd.Grouper(key='date', freq='1h')).sum()) #実行結果 counts date 2018-12-01 00:00:00 7536.0 2018-12-01 01:00:00 3280.0 2018-12-01 02:00:00 3909.0 2018-12-01 03:00:00 3530.0 2018-12-01 04:00:00 4903.0 2018-12-01 05:00:00 5056.0 2018-12-01 06:00:00 5054.0 2018-12-01 07:00:00 9303.0 2018-12-01 08:00:00 11134.0 2018-12-01 09:00:00 7014.0 2018-12-01 10:00:00 8842.0 2018-12-01 11:00:00 6961.0 2018-12-01 12:00:00 7474.0 2018-12-01 13:00:00 8724.0 2018-12-01 14:00:00 8792.0 2018-12-01 15:00:00 10914.0 2018-12-01 16:00:00 10431.0 2018-12-01 17:00:00 9651.0 2018-12-01 18:00:00 11577.0 2018-12-01 19:00:00 10546.0 2018-12-01 20:00:00 11753.0 2018-12-01 21:00:00 9100.0 2018-12-01 22:00:00 9028.0 2018-12-01 23:00:00 6916.0 Pandasは機能がありすぎて、使う時に忘れてることが多い。まめにログに残しておくことにしたい。 pandas.Grouper