В фрейме данных pandas я хотел бы найти средние значения столбца, сгруппированного по «настроенному» году.
Примером может служить вычисление средних значений школьных оценок за учебный год (например, сентябрь / гггг - август / гггг + 1). Документы pandas дают некоторую информацию о смещениях и финансовом году и т. Д. c., Но я не могу из этого ничего понять, чтобы получить рабочий пример.
Вот минимальный пример, где среднее значение значения школьных оценок рассчитываются за год (январь-декабрь c), чего я не хочу .
import pandas as pd
import numpy as np
df = pd.DataFrame(data=np.random.randint(low=1, high=5, size=36),
index=pd.date_range('2001-09-01', freq='M', periods=36),
columns=['marks'])
df_yearly = df.groupby(pd.Grouper(freq="A")).mean()
Это может привести к примеру:
print(df):
marks
2001-09-30 1
2001-10-31 4
2001-11-30 2
2001-12-31 1
2002-01-31 4
2002-02-28 1
2002-03-31 2
2002-04-30 1
2002-05-31 3
2002-06-30 3
2002-07-31 3
2002-08-31 3
2002-09-30 4
2002-10-31 1
...
2003-11-30 4
2003-12-31 2
2004-01-31 1
2004-02-29 2
2004-03-31 1
2004-04-30 3
2004-05-31 4
2004-06-30 2
2004-07-31 2
2004-08-31 4
print(df_yearly):
marks
2001-12-31 2.000000
2002-12-31 2.583333
2003-12-31 2.666667
2004-12-31 2.375000
Мой желаемый результат будет соответствовать чему-то вроде:
2001-09/2002-08 mean_value
2002-09/2003-08 mean_value
2003-09/2004-08 mean_value
Большое спасибо!