diff --git a/api/api_v1/endpoints/query.py b/api/api_v1/endpoints/query.py index 5525531..b5fb180 100644 --- a/api/api_v1/endpoints/query.py +++ b/api/api_v1/endpoints/query.py @@ -136,11 +136,11 @@ async def event_model( # df_group.reset_index(drop=True, inplace=True) q['groups'].append(groupby) q['values'].append(df['values'].to_list()) - q['sum'].append(int(df['values'].sum())) - q['avg'].append(int(df['values'].mean())) + q['sum'].append(float(df['values'].sum())) + q['avg'].append(float(df['values'].mean())) for last_value in df['values'].values[::-1]: if last_value > 0: - q['last_value'] = int(last_value) + q['last_value'] = float(last_value) break if groupby: q['date_range'] = [f'{i}' for i in df.set_index(groupby).index] @@ -165,11 +165,11 @@ async def event_model( df_group = pd.concat([df_group, pd.DataFrame(concat_data, columns=df_group.columns)]) 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())) + q['sum'].append(float(df_group['values'].sum())) + q['avg'].append(float(df_group['values'].mean())) for last_value in df['values'].values[::-1]: if last_value > 0: - q['last_value'] = int(last_value) + q['last_value'] = float(last_value) break else: @@ -186,10 +186,10 @@ async def event_model( q['values'].append(df['values'].to_list()) for last_value in df['values'].values[::-1]: if last_value > 0: - q['last_value'] = int(last_value) + q['last_value'] = float(last_value) break - q['sum'].append(int(df['values'].sum())) - q['avg'].append(round(df['values'].mean(), 2)) + q['sum'].append(float(df['values'].sum())) + q['avg'].append(float(df['values'].mean())) 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',): @@ -239,6 +239,7 @@ async def retention_model(request: Request, days = [i for i in range(unit_num + 1)] summary_values = {} today = datetime.datetime.today().date() + for date, value in df.T.items(): tmp = summary_values.setdefault(date.strftime('%Y-%m-%d'), dict()) tmp['d0'] = int(value.cnt0)