From 97ef0b27d8bc7a45618de6bde1b98c09352da5be Mon Sep 17 00:00:00 2001 From: Michael DM Dryden Date: Fri, 5 Jun 2020 02:42:55 -0400 Subject: [PATCH] stats: Set default averages for history proportionally to data points --- telegram_stats_bot/stats.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/telegram_stats_bot/stats.py b/telegram_stats_bot/stats.py index dd583bc..1d84e8a 100644 --- a/telegram_stats_bot/stats.py +++ b/telegram_stats_bot/stats.py @@ -403,8 +403,10 @@ class StatsRunner(object): """ query_conditions = [] sql_dict = {} - if averages is None: - averages = 30 + + if averages: + if averages < 0: + raise HelpException("averages must be >= 0") if start: sql_dict['start_dt'] = pd.to_datetime(start) @@ -435,6 +437,11 @@ class StatsRunner(object): df = pd.read_sql_query(query, con, params=sql_dict) df['day'] = pd.to_datetime(df.day) df['day'] = df.day.dt.tz_convert(self.tz) + + if averages is None: + averages = len(df) // 20 + if averages <= 1: + averages = 0 if averages: df['msg_rolling'] = df['messages'].rolling(averages, center=True).mean()