pandas dataframe groupby datetime month

Consider a csv file:

    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

I can read this in, and reformat the date column into datetime format:

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

I have been trying to group the data by month. It seems like there should be an obvious way of accessing the month and grouping by that. But I can't seem to do it. Does anyone know how?

What I am currently trying is re-indexing by the date:

    b.index=b['date']

I can access the month like so:

    b.index.month

However I can't seem to find a function to lump together by month.

Managed to do it:

    df.groupby(by=[b.index.month, b.index.year])

Or

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

From: stackoverflow.com/q/24082784

Back to homepage or read more recommendations: