Вы можете установить Month
как упорядоченную категорию всех месяцев года:
months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
df['Month'] = pd.Categorical(df['Month'], categories = months, ordered=True)
Затем, когда вы сделаете вашу группу, им будет приказано:
>>> df.groupby(["Month","Day"]).min()
count Data_Value
Month Day
Jan 1 NaN NaN
4 NaN NaN
6 NaN NaN
7 NaN NaN
14 NaN NaN
15 NaN NaN
17 NaN NaN
18 NaN NaN
19 59.0 94.0
21 NaN NaN
22 NaN NaN
24 40.0 33.0
25 9.0 33.0
26 22.0 61.0
27 NaN NaN
28 NaN NaN
30 NaN NaN
Feb 1 NaN NaN
4 NaN NaN
6 NaN NaN
7 NaN NaN
14 NaN NaN
.....
Возможно, было бы проще получить сокращения месяца из модуля calendar
, хотя:
import calendar
months = [calendar.month_abbr[i] for i in range(1,13)]
>>> months
['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']