由于被零除而导致处理 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

如果由于某种原因这不能解决问题,请告诉我,我可能遗漏了问题陈述中的某些内容。