This commit is contained in:
wuaho 2021-08-27 16:23:20 +08:00
parent a6655befdc
commit b2ffc0a8b4

View File

@ -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',):