仕事やプライベートで調べたことのメモ書きなど(@札幌)

仕事やプライベートで調べたこと、興味ある事のメモ書きです。2016年4月から札幌で働いてます。※このブログは個人によるもので、団体を代表するものではありません。

Python (pandas) で指定時間間隔でデータを集計する方法

Python (pandas)を使って指定時間間隔のログを集計する方法

やりたかったこと

タイムスタンプ(datetime)列があるcsvデータで、ある時間範囲にある行数をカウントしたい。(5分おき、15分おき、30分おき、1時間おき、など)
pandasのresampleを使うと簡単にできます♪

import pandas as pd
import numpy as np

csv_files = ['1_file.csv', '2_file.csv', '3_file.csv', '4_file.csv']

FILE_HEAD='file_'

for csv_file in csv_files:
	df = pd.read_csv(csv_file, parse_dates=True, index_col='datetime')

	df.resample('5T').count().rename(columns={'val': 'count'})['count'].to_csv(FILE_HEAD + csv_file[0] + '_05m.csv')
	df.resample('15T').count().rename(columns={'val': 'count'})['count'].to_csv(FILE_HEAD + csv_file[0] + '_15m.csv')
	df.resample('30T').count().rename(columns={'val': 'count'})['count'].to_csv(FILE_HEAD + csv_file[0] + '_30m.csv')
	df.resample('60T').count().rename(columns={'val': 'count'})['count'].to_csv(FILE_HEAD + csv_file[0] + '_60m.csv')