Как использовать сдвиг и применять функции к группам по объектам? - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь найти число последовательных нулей, которые входят в группу столбцов demandQuantity, по клиенту и материалу и отставание на 6 месяцев (каждая строка представляет месяц) в отдельном столбце.Поэтому я использую следующий код

def myfunc(rolling_window) :
    count=0
    n=len(rolling_window)
    if rolling_window[-1]!=0:
        return 0
    else:
        for i in range(0,n):
            if rolling_window[n-i-1] == 0:
                count=count + 1
            else:
                break
    return count
df2['zerocum']=df2.groupby(['customerParentID','forecastGroup'])['demandQuantity'].shift(6).rolling(window=36,min_periods=1).apply(myfunc)

, однако это не работает так, как я ожидаю;Вывод, который я получаю, совпадает с тем, что я получил бы, если бы использовал следующее

df2['zerocum']=df2.['demandQuantity'].shift(6).rolling(window=36,min_periods=1).apply(myfunc)

Так что кажется, что вывод не группируется по.Я использовал точно такую ​​же логику для определения скользящего среднего значения с задержкой на 6 месяцев, что, похоже, тоже не работает.Буду признателен, если кто-нибудь сможет помочь с этим

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