Как сделать это эффективным - примените pandas (запрос одного и того же кадра данных из значений строк) - PullRequest
0 голосов
/ 21 января 2019
mat['total'] = mat.apply(lambda row: mat[
                    (mat['Market'] == row['Market']) &
                    (mat['Brand'] == row['Brand']) &                   
                    (mat['Category'] == row['Category']) &                   
                    (mat['Facts'] == row['Facts']) &                 
                    (mat['Rolling Type'] == row['Rolling Type']) &                   
                    (mat['Flag'] == row['Flag']) &                  
                    (mat['Date'] <= row['Date']) &                  
                    (mat['Date'] >= (row['Date'] - relativedelta(months= 11)))]['value'].sum() , axis = 1) 

Приведенный выше код дает мне точный вывод, который я хочу.И я хочу сделать это с помощью groupby (я думаю, что это будет эффективный способ)

У меня есть этот dataframe (mat), где для каждой строки в фрейме данных отфильтровываю dataframe с похожими результатами строки и проверяюесли дата находится между текущей датой и 12 месяцами до даты с добавлением всех отфильтрованных результатов.

Ищете эффективный способ сделать это?Может быть, с помощью группового?

mat.groupby(['Market', 'Brand', 'Category', 'Facts', 'Rolling Type', 'Flag']).transform('sum') 

Единственное, что меня смущает, - это как фильтровать диапазон дат здесь!

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