Чтобы вернуть названия дней DateTimeIndex с указанным языком с понедельника по воскресенье
df['DAY'] = pd.to_datetime(df['DATE']).dt.day_name()
Затем создайте столбец для обозначения случаев вхождения, если у вас еще нет столбца для агрегирования:
#I'm assuming each day refers to a unique "instance" or occurrence
#but this does not have to follow if you already have a column to count/aggregate
df['OCCURENCE'] = 1
Чтобы вернуть среднее число вхождений за данный день, просто используйте выражение groupby и укажите группу, которую вы хотите усреднить:
group_df = df.groupby('DAY')['OCCURENCE'].mean()
Чтобы удовлетворить странное требование формата иметь все в списке
output_list = []
for day in group_df.index:
avg = group_df.loc[day][0]
str_format = 'average for {d}:{v}'.foramt(d=day, v=avg)
output_list.append(str_format)
new_list = ' '.join(output_list)