Can Pandas plot a histogram of dates?

I've taken my Series and coerced it to a datetime column of dtype=datetime64[ns] (though only need day resolution...not sure how to change).

    import pandas as pd
    df = pd.read_csv('somefile.csv')
    column = df['date']
    column = pd.to_datetime(column, coerce=True)

but plotting doesn't work:

    ipdb> column.plot(kind='hist')
    *** TypeError: ufunc add cannot use operands with types dtype('<M8[ns]') and dtype('float64')

I'd like to plot a histogram that just shows the count of dates by week, month, or year.

Surely there is a way to do this in pandas?

Given this df:

            date
    0 2001-08-10
    1 2002-08-31
    2 2003-08-29
    3 2006-06-21
    4 2002-03-27
    5 2003-07-14
    6 2004-06-15
    7 2003-08-14
    8 2003-07-29

and, if it's not already the case:

    df["date"] = df["date"].astype("datetime64")

To show the count of dates by month:

    df.groupby(df["date"].dt.month).count().plot(kind="bar")

.dt allows you to access the datetime properties.

Which will give you:

groupby date month

You can replace month by year, day, etc..

If you want to distinguish year and month for instance, just do:

    df.groupby([df["date"].dt.year, df["date"].dt.month]).count().plot(kind="bar")

Which gives:

groupby date month year

Was it what you wanted ? Is this clear ?

Hope this helps !

From: stackoverflow.com/q/27365467