Агрегирование данных за последние 12 месяцев на основе переменной даты с использованием Python - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть набор бизнес-данных на основе подписки, который выглядит следующим образом:

Company    RenewalDate    Year   Month  Metrics   Sales
 ABC          201710       2017    09     ...     100,000
 DEF          201802       2017    09     ...     43,000
 GHI          201807       2017    09     ...     200,000
 ABC          201810       2017    10     ...     90,000
 DEF          201702       2017    10     ...     43,000
 GHI          201707       2017    10     ...     200,000
 ABC          201710       2017    11     ...     90,000
 DEF          201702       2017    11     ...     43,000
 GHI          201707       2017    11     ...     200,000

и т. Д., Существует около 10 тыс. Учетных записей, и я использую их данные в месяц в течение последних 5 лет.

Здесь RenewalDate представляет месяц, в котором каждый год происходит продление для этой учетной записи. Год и месяц представляет агрегированные параметры использования в этом году и месяце, метрики использования состоит из таких параметров, как сеансы, контент, регион, продукты и т. Д., И в столбце «Продажи» указывается продажа, совершенная ввремя продления месяца.

Вот сложная часть, я хочу агрегировать данные для пользовательских метрик всех учетных записей за последние 12 месяцев с даты их обновления на ежемесячной основе, но данные должны состоять только из метрик изпоследние 12 месяцев до последней обновленной даты для этого аккаунта.Например, ABC имеет дату обновления в 2017-10, а позволяет предположить, что текущая дата - 2017-09.Поэтому я хочу объединить данные метрик за последние 12 месяцев ABC, начиная с 2016-09 по 2017-09 годы, а для других счетов, кроме ABC, агрегированные данные должны быть получены с даты их обновления, например, DEF должен иметь их с 2016-С 01 по 2017-01 (поскольку 2018-01 не пришел, так как предполагаемая текущая дата - 2017-09), а для GHI - с 2016-07 по 2017-07 и так далее.Если перейти к текущему году, год и месяц будут 2019-02, поэтому данные за этот месяц должны состоять из следующих элементов:

ABC should have aggregated data from 2017-10 to 2018-10
DEF should have aggregated data from 2017-02 to 2018-02 ( as we still dont have full data for Feb)
GHI should have data from 2017-07 to 2018-07

Следующий месяц:

ABC should have aggregated data from 2017-10 to 2018-10
DEF should have aggregated data from 2018-02 to 2019-02 
GHI should have data from 2017-07 to 2018-07

и т. Д..

Я хочу автоматизировать этот процесс.Как я могу создать набор правил, которые могут автоматически генерировать это на основе текущего месяца.Кроме того, как видно, у ABC была потеря дохода, она составила от 100 000 до 90 000, поэтому я хочу пометить такие учетные записи как "1".

...