Я пытаюсь создать отчет, сгруппированный по дням недели для каждого года.
У меня есть df, который выглядит следующим образом:
s1 s2 srd
dt
2004-02-04 11:21:00 2365.79 2372.37 -7.0
2004-02-05 10:15:00 2365.79 2368.03 -2.0
2004-02-17 06:43:00 2421.05 2425.26 -4.0
2004-02-17 12:43:00 2418.42 2420.53 -2.0
2004-02-17 12:44:00 2420.39 2420.53 -0.0
Индекс dt находится вформат даты и времени.
Мне нужен кадр данных, который выглядит следующим образом (мне нужны только столбец srd и функция, чтобы сгруппировать можно что угодно, например, sum, count и т. д.):
srd
dayOfWeek year
Mon 2004 10
2005 11
2006 8
2007 120
Tues 2004 105
2005 105
Я пробовал dayOfWeekDf = df.resample('B')
, но я получаю фрейм данных, который выглядит, как будто он разделен по номеру недели.
Я также пытался df.groupby([df.index.weekday, df.index.year])['srd'].transform('sum')
, но по какой-то причине он даже не группируется, так как яполучите следующее (17 февраля появляется 3 раза).
srd
dt
2004-02-04 11:21:00 81.0
2004-02-05 10:15:00 203.0
2004-02-17 06:43:00 37.0
2004-02-17 12:43:00 37.0
2004-02-17 12:44:00 37.0