Панды — Подведение итогов предыдущих 6 месяцев и следующих 6 месяцев

#python #pandas #dataframe #time #cumulative-sum

Вопрос:

У меня есть набор данных с продажами на одного клиента в месяц. У меня есть как поле даты (например, июнь 2018 года), так и «счетчик месяцев», который дает каждому месяцу прогрессивное число (например, если данные начинаются в январе 2018 года, январь 2018 года равен «1», декабрь 2018 года — «12», а январь 2019 года — «13»). Пожалуйста, посмотрите на изображение, первые 4 столбца-это образец данных, которые у меня есть.

Я хотел бы для каждого месяца и каждого клиента суммировать продажи за предыдущие 6 месяцев и за следующие 6 месяцев, как в последних 2 столбцах на прикрепленном изображении. Например: для месяца 1 и клиента «Джон» я хотел бы суммировать продажи за месяц 2,3,4,5,6,7, только глядя на «Джона», это будет «Продажи за следующие 6 месяцев» для Джона в 1 месяце. Обратная логика продаж за последние 6 месяцев.

Я попытался создать цикл for и создать некоторые функции, но мне не удалось создать ничего похожего на то, что мне нужно.

данные

Комментарии:

1. Используйте groupby тогда rolling . Пожалуйста, поместите свои данные в виде текста , а не в виде изображения.

2. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.