From b2ffc0a8b4a4f5704d534cb0d82122f540a94312 Mon Sep 17 00:00:00 2001 From: wuaho Date: Fri, 27 Aug 2021 16:23:20 +0800 Subject: [PATCH] 1 --- api/api_v1/endpoints/query.py | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/api/api_v1/endpoints/query.py b/api/api_v1/endpoints/query.py index c9bc587..d93943b 100644 --- a/api/api_v1/endpoints/query.py +++ b/api/api_v1/endpoints/query.py @@ -60,7 +60,7 @@ async def event_model_export(request: Request, """ 事件分析模型 数据导出""" await analysis.init() sqls = analysis.event_model_sql() - file_name = quote(f'{sqls[0]["report_name"]}.xlsx') + file_name = quote(f'{sqls[0]["report_name"]}.xlsx') mime = mimetypes.guess_type(file_name)[0] excels = [] for item in sqls: @@ -117,6 +117,7 @@ async def event_model( 'groups': [], 'values': [], 'sum': [], + 'avg': [], 'event_name': item['event_name'], 'format': item['format'] } @@ -135,10 +136,11 @@ async def event_model( q['groups'].append(groupby) q['values'].append(df['values'].to_list()) q['sum'].append(int(df['values'].sum())) + q['avg'].append(round(df['values'].mean(), 2)) if groupby: q['date_range'] = [f'{i}' for i in df.set_index(groupby).index] else: - q['date_range'] =['合计'] + q['date_range'] = ['合计'] res.append(q) continue @@ -159,6 +161,7 @@ async def event_model( df_group.sort_values('date', inplace=True) q['values'].append(df_group['values'].to_list()) q['sum'].append(int(df_group['values'].sum())) + q['avg'].append(int(df_group['values'].mean())) else: # 无分组 @@ -168,11 +171,12 @@ async def event_model( df = pd.concat([df, pd.DataFrame(concat_data, columns=df.columns)]) df.sort_values('date', inplace=True) if len(df) >= 2: - q['chain_ratio'] = division((df.iloc[-1, 1] - df.iloc[-2, 1]) * 100 , df.iloc[-2, 1], 2) + q['chain_ratio'] = division((df.iloc[-1, 1] - df.iloc[-2, 1]) * 100, df.iloc[-2, 1], 2) if len(df) >= 8: q['wow'] = division((df.iloc[-1, 1] - df.iloc[-8, 1]) * 100 / df.iloc[-8, 1], 2) or 0 q['values'].append(df['values'].to_list()) q['sum'].append(int(df['values'].sum())) + q['avg'].append(round(df['values'].mean(), 2)) if item['time_particle'] in ('P1D', 'P1W'): q['date_range'] = [d.strftime('%Y-%m-%d') for d in q['date_range']] elif item['time_particle'] in ('P1M',):