得到
DatetimeIndex.floor
并按
GroupBy.size
print (type(df))
<class 'pandas.core.frame.DataFrame'>
dates = df.rename_axis('Dates').index.floor('H')
df1 = df.groupby([dates,'Item']).size().reset_index(name='count')
print (df1)
Dates Item count
0 2016-10-30 09:00:00 Bread 1
1 2016-10-30 10:00:00 Bread 2
2 2016-10-30 10:00:00 Coffee 1
3 2016-10-30 10:00:00 Cookies 1
4 2016-10-30 10:00:00 Hot chocolate 1
5 2016-10-30 10:00:00 Jam 1
6 2016-10-30 10:00:00 Muffin 1
7 2016-10-30 10:00:00 Pastry 2
8 2016-10-30 10:00:00 Scandinavian 2
9 2016-10-30 10:00:00 Tea 1
dates = df.rename_axis('Dates').index.floor('24H')
df2 = df.groupby([dates,'Item']).size().reset_index(name='count')
print (df2)
Dates Item count
0 2016-10-30 Bread 3
1 2016-10-30 Coffee 1
2 2016-10-30 Cookies 1
3 2016-10-30 Hot chocolate 1
4 2016-10-30 Jam 1
5 2016-10-30 Muffin 1
6 2016-10-30 Pastry 2
7 2016-10-30 Scandinavian 2
8 2016-10-30 Tea 1
如果
Series
print (type(s))
<class 'pandas.core.series.Series'>
dates = s.rename_axis('Dates').index.floor('24H')
df2 = s.groupby([dates,s]).size().reset_index(name='count')