Python 因被零除而导致的问题处理NaN
我正在用Django rest框架开发一个API。 请求位于Python 因被零除而导致的问题处理NaN,python,api,django-rest-framework,nan,divide-by-zero,Python,Api,Django Rest Framework,Nan,Divide By Zero,我正在用Django rest框架开发一个API。 请求位于get(),用户输入日期和部门号,并返回一个响应,其中包含关于该特定部门的特定日期的销售指标 问题: 问题是,在某些情况下,对于2018年的旧数据,我查询的大多数字段都是零,并且有一个分区来计算一些指标,因此最终得到NaN,这破坏了API的功能 这是my views.py中的示例代码: sql = "select sales_p, sales_c, sales_all from sales where dat_ref = '"
get()
,用户输入日期和部门号,并返回一个响应,其中包含关于该特定部门的特定日期的销售指标
问题:
问题是,在某些情况下,对于2018年的旧数据,我查询的大多数字段都是零,并且有一个分区来计算一些指标,因此最终得到NaN,这破坏了API的功能
这是my 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}
我正在寻找处理此问题的最佳方法,并可能会向用户返回一条消息进行澄清。最简单的解决方案可能就是:
如果销售额=0:
#不管怎样处理错误,引发异常,打印消息或其他任何东西
其他:
#继续节目
如果出于某种原因,这不起作用,请告诉我,我可能遗漏了问题陈述中的某些内容。您需要带零的吗?否则,只需删除nan值。