Pandas でデータを時間ごとにグループ化する方法 (例あり)


次の構文を使用して、データを時間ごとにグループ化し、パンダで集計を実行できます。

 df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

この特定の例では、値を時間ごとにHourという列にグループ化し、各時間のSales列の値の合計を計算します。

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas で時間ごとにデータをグループ化する

店舗の 1 日のさまざまな時間帯の販売数を示す次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15',
                            '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                            '2022-01-01 04:05:10', '2022-01-01 05:35:09'],
                   ' sales ': [18, 20, 15, 14, 10, 9]})

#convert date column to datetime
df[' time '] = pd. to_datetime (df[' time '])

#view DataFrame
print (df)

                 time sales
0 2022-01-01 01:14:00 18
1 2022-01-01 01:24:15 20
2 2022-01-01 02:52:19 15
3 2022-01-01 02:54:00 14
4 2022-01-01 04:05:10 10
5 2022-01-01 05:35:09 9

次の構文を使用して、時刻列を時間ごとにグループ化し、時間ごとの売上の合計を計算できます。

 #group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64

結果から次のことがわかります。

  • 最初の1時間で合計38個の販売が行われました。
  • 2 時間以内に合計29 個の販売が行われました。
  • 4 時間以内に合計10 件の販売が行われました。
  • 5時間の間に合計9件の販売が行われました。

別の集計を実行することもできることに注意してください。

たとえば、1 時間あたりの平均販売数を計算できます。

 #group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()

time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64

必要に応じて、時間と分ごとにグループ化することもできます。

たとえば、次のコードは、時間と分ごとにグループ化された売上の合計を計算する方法を示しています。

 #group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()

time time
1 14 18
      24 20
2 52 15
      54 14
4 5 10
5 35 9
Name: sales, dtype: int64

結果から次のことがわかります。

  • 1 時間 14 分間の平均販売数は18でした。
  • 1 時間 23 分間の平均販売数は20でした。
  • 2 時間 52 分間の平均販売数は15でした。

等々。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas で日付範囲を作成する方法
Pandasで日付から月を抽出する方法
Pandasでタイムスタンプを日付/時刻に変換する方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です