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

View File

@ -117,6 +117,7 @@ async def event_model(
'groups': [], 'groups': [],
'values': [], 'values': [],
'sum': [], 'sum': [],
'avg': [],
'event_name': item['event_name'], 'event_name': item['event_name'],
'format': item['format'] 'format': item['format']
} }
@ -135,10 +136,11 @@ async def event_model(
q['groups'].append(groupby) q['groups'].append(groupby)
q['values'].append(df['values'].to_list()) q['values'].append(df['values'].to_list())
q['sum'].append(int(df['values'].sum())) q['sum'].append(int(df['values'].sum()))
q['avg'].append(round(df['values'].mean(), 2))
if groupby: if groupby:
q['date_range'] = [f'{i}' for i in df.set_index(groupby).index] q['date_range'] = [f'{i}' for i in df.set_index(groupby).index]
else: else:
q['date_range'] =['合计'] q['date_range'] = ['合计']
res.append(q) res.append(q)
continue continue
@ -159,6 +161,7 @@ async def event_model(
df_group.sort_values('date', inplace=True) df_group.sort_values('date', inplace=True)
q['values'].append(df_group['values'].to_list()) q['values'].append(df_group['values'].to_list())
q['sum'].append(int(df_group['values'].sum())) q['sum'].append(int(df_group['values'].sum()))
q['avg'].append(int(df_group['values'].mean()))
else: else:
# 无分组 # 无分组
@ -168,11 +171,12 @@ async def event_model(
df = pd.concat([df, pd.DataFrame(concat_data, columns=df.columns)]) df = pd.concat([df, pd.DataFrame(concat_data, columns=df.columns)])
df.sort_values('date', inplace=True) df.sort_values('date', inplace=True)
if len(df) >= 2: 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: if len(df) >= 8:
q['wow'] = division((df.iloc[-1, 1] - df.iloc[-8, 1]) * 100 / df.iloc[-8, 1], 2) or 0 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['values'].append(df['values'].to_list())
q['sum'].append(int(df['values'].sum())) q['sum'].append(int(df['values'].sum()))
q['avg'].append(round(df['values'].mean(), 2))
if item['time_particle'] in ('P1D', 'P1W'): if item['time_particle'] in ('P1D', 'P1W'):
q['date_range'] = [d.strftime('%Y-%m-%d') for d in q['date_range']] q['date_range'] = [d.strftime('%Y-%m-%d') for d in q['date_range']]
elif item['time_particle'] in ('P1M',): elif item['time_particle'] in ('P1M',):