Почему window_avg в таблице должен работать с агрегированной переменной? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь рассчитать скользящее среднее по 30 дням. Однако в Таблице я должен использовать window_avg (avg (varaible), - 30, 0). Это означает, что он фактически вычисляет среднее значение ежедневного среднего. Сначала вычисляется среднее значение за день, а затем усредняются значения за последние 30 дней. Мне интересно, есть ли в Таблице функция, которая может непосредственно вычислять скользящее среднее, например pandas.rolling?

1 Ответ

0 голосов
/ 29 апреля 2018

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

window_sum(sum(variable), -30, 0) / window_sum(sum(1), -30, 0)

Несколько идей о табличных вызовах, которые нужно иметь в виду

  • Табличные вызовы работают с совокупными результатами запросов.
  • Это дает вам гибкость - вы можете разделить таблицу результатов запроса различными способами, получить доступ к нескольким значениям в наборе результатов, упорядочить результаты запроса, чтобы повлиять на ваши расчеты, по-разному вложить таблицы в вычисления.
  • Этот подход также может дать вам эффективность, если вы сможете рассчитать то, что вам нужно, просто из совокупных результатов, которые вы уже получили.
  • Это также дает вам сложность. Вы должны знать, как каждый расчет определяет адресацию и разбиение результатов запроса. Вы также должны подумать о том, как двойная агрегация повлияет на ваши результаты.
  • В большинстве случаев применение функций агрегирования спина к спине требует тщательного обдумывания того, что будут означать результаты. Как вы заметили, средние значения могут не означать то, что люди думают, что они имеют в виду. Другие могут быть вполне разумными, например, средние значения ежедневных продаж.
  • В некоторых случаях двойная агрегация может использоваться без лишних раздумий, поскольку результаты одинаковы независимо. Суммы сумм, мин мин, макс макса дают тот же результат, что и вызов суммы, мин или макс для базовых строк данных. Эти функции называются аддитивными функциями агрегирования и подчиняются ассоциативному правилу, которое вы выучили в начальной школе. Следовательно, формула в начале этого ответа.

Вы также можете прочитать о функции Total ().

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