1
This commit is contained in:
parent
a6655befdc
commit
b2ffc0a8b4
@ -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',):
|
||||
|
Loading…
Reference in New Issue
Block a user