From 9375114519e04f541daecce1f52c1c9f85ccc677 Mon Sep 17 00:00:00 2001 From: wuaho Date: Thu, 21 Oct 2021 11:00:09 +0800 Subject: [PATCH] =?UTF-8?q?ltv=E8=A1=A5=E5=85=85=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=80=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/api_v1/endpoints/xquery.py | 2 ++ models/x_analysis.py | 7 ++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/api/api_v1/endpoints/xquery.py b/api/api_v1/endpoints/xquery.py index a845c00..36ea713 100644 --- a/api/api_v1/endpoints/xquery.py +++ b/api/api_v1/endpoints/xquery.py @@ -59,6 +59,8 @@ async def ltv_model_sql( df.loc[len(df)] = '0' df.loc[len(df) - 1, 'date'] = d days = (pd.Timestamp.now().date() - d).days + if days + 2 >= res['ltv_len']: + continue df.loc[len(df) - 1, f'LTV{days + 2}':] = '-' df.sort_values('date', inplace=True) df.rename(columns={'date': '注册日期'}, inplace=True) diff --git a/models/x_analysis.py b/models/x_analysis.py index 163e752..fb43c15 100644 --- a/models/x_analysis.py +++ b/models/x_analysis.py @@ -54,7 +54,7 @@ class XAnalysis: else: self.event_view = self.data_in.eventView self.events = self.data_in.events - for d in pd.date_range(self.event_view['startTime'],self.event_view['endTime'], freq='D', tz='UTC'): + for d in pd.date_range(self.event_view['startTime'], self.event_view['endTime'], freq='D', tz='UTC'): self.date_range.append(d.date()) self.global_filters = self._get_global_filters() @@ -130,7 +130,7 @@ class XAnalysis: quota = self.event_view['quota'] select_ltv = [] sumpay = [] - for i in range(1, days+2): + for i in range(1, days + 2): # select_ltv.append(func.round(sa.Column(f'sumpay_{i}') / sa.Column('cnt1'), 2).label(f'LTV{i}')) select_ltv.append( f"if(dateDiff('day', reg.date, now())<{i - 1}, '-',toString(round(sumpay_{i} / cnt1, 2))) AS LTV{i}") @@ -189,5 +189,6 @@ class XAnalysis: return {'sql': sql, 'quota': quota, 'start_date': self.event_view['startTime'][:10], 'end_date': self.event_view['endTime'][:10], - 'date_range': self.date_range + 'date_range': self.date_range, + 'ltv_len': days + 1 }