Используйте DatetimeIndex.strftime
с %m-%d
для месяцев с днями и добавьте Index.nunique
:
n = df.index.strftime('%m-%d').nunique()
print('Number of days in df:', n)
#Number of days in df: 5
Ваше решение должно быть изменено:
daily = df.groupby(df.index.strftime('%m-%d')).sum()
print('Number of days in df:', len(daily.index))
#Number of days in df: 5
Или путем группировки по отдельным месяцам и дням:
daily = df.groupby([df.index.month, df.index.day]).sum()
print('Number of days in df:', len(daily.index))
#Number of days in df: 5
Но при необходимости число уникальных значений также с годами:
n = df.index.nunique()
print('Number of days in df:', n)
#Number of days in df: 5