Как найти средние значения по кварталам года - PullRequest
0 голосов
/ 08 февраля 2019

Я хотел бы найти средние значения на основе кварталов года.Чтобы уточнить, у меня есть датафрейм с двумя столбцами, названными «год» и «заработок».Столбец «год» содержит квартальные значения, например (1998-I квартал ... 1998-квартал 4).Я хочу найти среднее значение кварталов.В настоящее время у меня есть рабочее решение, но оно не будет практичным, если будут еще годы.Есть ли лучшее решение?

data = {
    'year': ['1998-Q1', '1998-Q2', '1998-Q3', '1998-Q4', '1999-Q1', '1999- 
    Q2', '1999-Q3', '1999-Q4'],
'earning': [2800, 2544, 2511, 3104, 2793, 2570,  2600, 3287]
}

df = pd.DataFrame(data)

print(df)

# What if there are more years? For example 2000, 2001, 2002 .... 2018.
df_1998 = df.iloc[:4].mean()
df_1999 = df.iloc[4:].mean()

print(df_1998)
print(df_1999)

1 Ответ

0 голосов
/ 08 февраля 2019

Мой подход состоял в том, чтобы преобразовать столбец year в PeriodIndex , а затем использовать pd.Grouper , чтобы возвращать среднее значение каждого года.

df['year'] = pd.to_datetime(df['year']).dt.to_period('Q')
df.set_index('year', drop=True, inplace=True)
df.groupby(pd.Grouper(freq='A')).mean()  # freq='A' specifies yearly frequency where year-end is calendar year-end

Чтовыводит среднюю прибыль каждого года, все в одном кадре данных:

        earning
year    
1998    2739.75
1999    2812.50
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...