【毎日Python】Pythonでデータフレームを日時型で集約する方法|resample

【毎日Python】Pythonでデータフレームを日時型で集約する方法|resample

import pandas as pd

df = pd.read_csv('data.csv', parse_dates=['売上日'], index_col=['売上日'])
df.head()

Pythonで、データフレームの日時型のカラムを軸に期間ごとの集約をする方法です。
使用するメソッドは、pandasのresampleメソッドです。
CSVデータを、時系列データになるようにインデックスを日時型に指定して読み込みます。
このようなデータフレームです。

df.index

インデックスのデータ型を確認してみましょう。
このように日時型であることがわかります。

df.resample('M').sum()

月ごとに集約して、合計を出してみましょう。
第一引数に集約したい頻度、つまり集約したい周期を指定します。
日次ならD、月次ならM、四半期ならQです。
集計はsumです。実行します。
表示できました。

df.resample('2M').mean()

2ヶ月ごとの平均であればこのようにして求めることができます。

df.resample('M')

また、resampleメソッドは、集約関数とセットで使用します。
このままではただのオブジェクトであることがわかります。

df1 = df.reset_index()
df1.head()

では、このようにインデックス以外に日時型のカラムがある場合はどうすればよいでしょうか。

df1.resample('Q', on='売上日').sum()

この場合は、引数onに日時型のカラムを指定することで集約することができます。

関連メソッド

【毎日Python】Pythonでデータフレームのカラムを日時型に変換する方法|to_datetime

【毎日Python】Pythonで連続した日時データを作成する方法|pandas.date_range