How to group a Series by values in pandas?

I currently have a pandas Series with dtype Timestamp, and I want to group it by date (and have many rows with different times in each group).

The seemingly obvious way of doing this would be something similar to

grouped = s.groupby(lambda x: x.date())

However, pandas' groupby groups Series by its index. How can I make it group by value instead?


grouped = s.groupby(s)

Or:

grouped = s.groupby(lambda x: s[x])

Three methods:

DataFrame: pd.groupby(['column']).size()

Series: sel.groupby(sel).size()

Series to DataFrame:

pd.DataFrame( sel, columns=['column']).groupby(['column']).size()


For anyone else who wants to do this inline without throwing a lambda in (which tends to kill performance):

s.to_frame(0).groupby(0)[0]