由于被零除而导致处理 NaN 的问题
Issue handling NaN due to division by zero
我正在使用 Django-rest-framework 开发 API。
请求在 get()
中,用户输入日期和部门编号,然后在 return 中获得一个响应,其中包含有关该特定部门的特定日期的销售指标。
问题:
问题是,在某些情况下,对于 2018 年的旧数据,我查询的大部分字段都是零,并且有一个除法来计算一些指标,所以你最终会得到 NaN,这会破坏 API.
这是我的示例代码 views.py:
sql = "select sales_p, sales_c, sales_all from sales where dat_ref = '" + input_date + "'"
try:
df = select_vector(sql, DB_CONNECTOR)
except Exception:
raise ServiceUnavailable()
if df is None:
raise ServiceUnavailable()
if len(df) > 0:
sales_1 = df['sales_p'].loc[0]
sales_2 = df5['sales_c'].loc[0]
sales_all = df5['sales_all'].loc[0]
else:
return Response(status=204)
percentage = float(("{0:.2f}".format(((sales_all - sales_p)/sales_c)*100)))
response = {'Percentage': percentage}
我正在寻找处理此问题的最佳方法,也许 return 向用户发送消息以进行澄清。
最简单的解决方案可能就是:
if sales_c == 0:
#Handle the error however you want, raise an exception print a message or whatever else
else:
#Continue with program
如果由于某种原因这不能解决问题,请告诉我,我可能遗漏了问题陈述中的某些内容。
我正在使用 Django-rest-framework 开发 API。
请求在 get()
中,用户输入日期和部门编号,然后在 return 中获得一个响应,其中包含有关该特定部门的特定日期的销售指标。
问题: 问题是,在某些情况下,对于 2018 年的旧数据,我查询的大部分字段都是零,并且有一个除法来计算一些指标,所以你最终会得到 NaN,这会破坏 API.
这是我的示例代码 views.py:
sql = "select sales_p, sales_c, sales_all from sales where dat_ref = '" + input_date + "'"
try:
df = select_vector(sql, DB_CONNECTOR)
except Exception:
raise ServiceUnavailable()
if df is None:
raise ServiceUnavailable()
if len(df) > 0:
sales_1 = df['sales_p'].loc[0]
sales_2 = df5['sales_c'].loc[0]
sales_all = df5['sales_all'].loc[0]
else:
return Response(status=204)
percentage = float(("{0:.2f}".format(((sales_all - sales_p)/sales_c)*100)))
response = {'Percentage': percentage}
我正在寻找处理此问题的最佳方法,也许 return 向用户发送消息以进行澄清。
最简单的解决方案可能就是:
if sales_c == 0:
#Handle the error however you want, raise an exception print a message or whatever else
else:
#Continue with program
如果由于某种原因这不能解决问题,请告诉我,我可能遗漏了问题陈述中的某些内容。