Повторять выборку данных ежеквартально, но в разные месяцы окончания - PullRequest
0 голосов
/ 21 октября 2018

Я хочу суммировать данные за каждый месяц в моем фрейме данных, но с накопленной суммой за каждый месяц квартала.Таким образом, ввод:

Index          Data
2017-02-05     10
2017-03-04     20
2017-06-20     40

Этот код работает ниже:

cum_df = monthly_df.groupby(by=[monthly_df.index.quarter, monthly_df.index.year]).cumsum()

Со следующим выводом:

Index         Data
2017-02-28    10
2017-03-31    30
2017-04-31    0
2017-05-31    0
2017-06-30    40

Однако я не хочукварталы заканчиваются в марте / июне / сентябре / декабре, но для нестандартного конца квартала, как февраль / май / август / ноябрь.Как я могу изменить свой код, чтобы он работал в пользовательских кварталах?

1 Ответ

0 голосов
/ 21 октября 2018

Используйте pd.Grouper(freq='anchored_offset'), где anchored_offset - желаемая строка "привязанного смещения" из документов: https://pandas.pydata.org/pandas-docs/stable/timeseries.html#anchored-offsets

Пример:

df = pd.DataFrame(index=pd.date_range(start='2017-02-01', end='2018-1-31', freq='W'))

# Label each Sunday with a 1
df[0] = 1

# Group by quarter with year ending in November ('Q-NOV'), but label each quarter
# with its start date ('QS-NOV')
df.groupby(pd.Grouper(freq='QS-NOV')).sum()

             0
2017-02-01  13
2017-05-01  13
2017-08-01  13
2017-11-01  13
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...