Временной ряд водного года: ежегодная повторная выборка для пользовательских дат некалендарного года

Я пишу свой самый первый цикл, так как повторная выборка не позволяет мне использовать пользовательские даты начала для годовой выборки. Моя цель — суммировать каждую серию из 12 последовательных месяцев в 30-летнем временном ряду для расчета некалендарного года (гидрологический водный год с октября по сентябрь). Набор данных начинается в октябре, поэтому я решил просто сложить вместе первые 12 строк, следующие 12 строк и так далее. Идеально для цикла, верно?! Два вопроса:

1) Каков самый простой способ сложить "n" строк, которые выводятся в новый DataFrame, проиндексированный по годам.

2) Моя попытка решения вопроса 1 приведена ниже, и она работает. Однако тип выходных данных — «NoneType», который я не могу объединить с другим DataFrame через pd.concat. Как это исправить?

def Water_Year_Total(Monthly_Data_30yrs):
    for i in range((len(Monthly_Data_30yrs))//12):
        x=0
        y=12
        new_value=sum(data[(x+(12*i)):(y+(12*i))])
        print(new_value)

Цикл for сначала подсчитывает количество строк с помощью функции len(), затем делит его на 12, чтобы получить количество лет в наборе данных, а затем повторяет цикл суммирования i раз, прежде чем распечатать результат.


person hydro    schedule 17.07.2018    source источник


Ответы (1)


Ваша функция ничего не return делает, поэтому после завершения работы она возвращает NoneType. Создайте переменную перед циклом for, добавьте к ней разные new_value, а затем верните эту переменную после завершения цикла for.

person Kevin Kang    schedule 17.07.2018