Pandas データフレーム groupby datetime month 質問する

Pandas データフレーム groupby datetime month 質問する

CSV ファイルについて考えてみましょう:

string,date,number
a string,2/5/11 9:16am,1.0
a string,3/5/11 10:44pm,2.0
a string,4/22/11 12:07pm,3.0
a string,4/22/11 12:10pm,4.0
a string,4/29/11 11:59am,1.0
a string,5/2/11 1:41pm,2.0
a string,5/2/11 2:02pm,3.0
a string,5/2/11 2:56pm,4.0
a string,5/2/11 3:00pm,5.0
a string,5/2/14 3:02pm,6.0
a string,5/2/14 3:18pm,7.0

これを読み込み、日付列を日時形式に再フォーマットできます。

b = pd.read_csv('b.dat')
b['date'] = pd.to_datetime(b['date'],format='%m/%d/%y %I:%M%p')

データを月ごとにグループ化しようとしています。月にアクセスして、それに基づいてグループ化する明白な方法があるはずです。しかし、それができないようです。誰か方法を知っていますか?

現在私が試みているのは、日付による再インデックスです:

b.index = b['date']

次のようにして月にアクセスできます:

b.index.month

しかし、月ごとにまとめる関数が見つからないようです。

ベストアンサー1

なんとかできました:

b = pd.read_csv('b.dat')
b.index = pd.to_datetime(b['date'],format='%m/%d/%y %I:%M%p')
b.groupby(by=[b.index.month, b.index.year])

または

b.groupby(pd.Grouper(freq='M'))  # update for v0.21+

おすすめ記事