パンダのGroupBy月
Preet Sanghavi
2023年6月21日
このチュートリアルでは、Pandas を使用して、日付ごと、特に月ごとにデータ フレームを配置します。 必要なライブラリをインポートすることから始めましょう。
パンダで月ごとにデータフレームをグループ化する
関連するライブラリをインポートします。
import pandas as pd
日付を含むデータ フレームを作成して、日付を月順に並べる必要があります。 私たちの場合、作業に 3つの日付を使用します。
以下のコードを使用して、サンプル データ フレームを作成します。
df = pd.DataFrame(
{
"Date": [
pd.Timestamp("2000-11-02"),
pd.Timestamp("2000-01-02"),
pd.Timestamp("2000-01-09"),
],
"ID": [1, 2, 3],
"Price": [140, 120, 230],
}
)
日付を含むサンプル データ フレームを見てみましょう。
print(df)
Date ID Price
0 2000-11-02 1 140
1 2000-01-02 2 120
2 2000-01-09 3 230
データフレームを作成したら、月順に並べてみましょう。 groupby()
関数を使用して、データ フレーム全体を処理します。
Pandas で groupby()
関数を使用する
Pandas GroupBy
を使用して、オブジェクトに groupby
ディレクティブを指定できます。 この命令は、grouper
関数の key
引数、指定されている場合は level および/または axis
パラメータ、およびターゲット オブジェクトまたは列のインデックス レベルを使用して列を選択します。
以下のコードを使用して、サンプル データ フレームで groupby
操作を実行しましょう。
df1 = df.groupby(pd.Grouper(key="Date", axis=0, freq="M")).sum()
データ フレームをグループ化したので、更新されたデータ フレームを見てみましょう。
print(df1)
ID Price
Date
2000-01-31 5 350
2000-02-29 0 0
2000-03-31 0 0
2000-04-30 0 0
2000-05-31 0 0
2000-06-30 0 0
2000-07-31 0 0
2000-08-31 0 0
2000-09-30 0 0
2000-10-31 0 0
2000-11-30 1 140
Date
列は、上記の例のデータ フレームをグループ化します。 月を表す freq = 'M'
を指定したため、データは各月の最終日まで月ごとにグループ化され、price
列の合計が表示されます。
すべての月の値を指定しなかったため、groupby
メソッドはすべての月のデータを表示し、その他の月には値 0 を割り当てました。
したがって、上記のアプローチを使用して、Pandas でデータ フレームを月ごとにグループ化することに成功しました。
著者: Preet Sanghavi