diff --git a/api/api_v1/endpoints/query.py b/api/api_v1/endpoints/query.py index 063f880..1cfc1ba 100644 --- a/api/api_v1/endpoints/query.py +++ b/api/api_v1/endpoints/query.py @@ -6,6 +6,7 @@ from urllib.parse import quote import pandas as pd import numpy as np from fastapi import APIRouter, Depends, Request +from fastapi.encoders import jsonable_encoder from motor.motor_asyncio import AsyncIOMotorDatabase from fastapi.responses import StreamingResponse @@ -356,9 +357,13 @@ async def retention_model(request: Request, tmp['d0'] = 0 for rt, rd in retention_avg_dict.items(): tmp['d0'] = tmp['d0'] + rd['cnt0'] - tmp['p'].append(round(rd['cntn'] * 100 / rd['cnt0'], 2)) + n = round(rd['cntn'] * 100 / rd['cnt0'],2) + n = 0 if np.isnan(n) else n + tmp['p'].append(n) tmp['n'].append(rd['cntn']) - tmp['p_outflow'].append(round(rd['o_cntn'] * 100 / rd['cnt0'], 2)) + n = round(rd['o_cntn'] * 100 / rd['cnt0'],2) + n = 0 if np.isnan(n) else n + tmp['p_outflow'].append(n) tmp['n_outflow'].append(rd['o_cntn'])