Повторение пользовательского диапазона дат в течение нескольких лет в Пандах - PullRequest
0 голосов
/ 04 октября 2018

Суть в том, как анализировать годовые данные в нестандартном году.В моем случае с сентября по сентябрь

У меня есть скрипт, который анализирует почасовые данные о температуре за несколько лет и вычисляет накопленные дни градуса роста (GDD) в год.Некоторые демонстрационные данные и сценарий находятся на этой сути , если вам интересно, где я нахожусь.Мясо и картофель, тем не менее, получают ежегодную совокупную сумму с этим:

df[col_name] = df.resample('Y')['dGDD'].cumsum()

, и все работает хорошо.Каждый день будет отображать накопленный GDD в соответствующем столбце до 31 декабря, когда он снова начинается с нуля.

Моя следующая цель - рассчитать дни степени охлаждения, которые работают аналогично GDD, но работают с сентября по сентябрь каждый год.и я понятия не имею, как это работает (или что правильно гуглить за помощью).Я знаю, что могу установить диапазон дат для его запуска, т. Е. df['2012-9-1':'2013-9-1'], но я не уверен, как автоматизировать его для всех моих данных (2007-2018).

Спасибо!

1 Ответ

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

Решено!Оказывается, период времени, который я ищу, известен как «Водный год».Узнав, что привело меня к другому вопросу и ответу .Это, в сочетании с более детальным рассмотрением .resample() документов , где я узнал, что вы можете направить повторную выборку к чему-то другому, кроме индекса, дало мне следующее:

df['WaterYear'] = df.index + pd.DateOffset(months=-8)
df[col_name] = df.resample('Y', on='WaterYear')['dCDD'].cumsum()

И все кажетсясейчас работаю плавно.

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