import scipy.stats as st
我的输入数据帧
ServiceLevel CoverPeriod ParameterA ParameterB ParameterC DailyForecast
0.95 4 0.07 1.2 0.9 0.22
0.97 4 0.08 1.21 0.88 0.35
0.92 5 0.08 1.1 0.87 0.86
我想用这个代码计算安全库存
df['SafetyStock_Test'] = st.norm.ppf(df["ServiceLevel"])*np.sqrt(df["CoverPeriod"]/7)*[(df["ParameterA"])+(df["ParameterB"])*(((df["DailyForecast"])*7)**df["ParameterC"])]
但我得到了这个错误信息
TypeError: unsupported operand type(s) for ** or pow(): 'float' and 'str'
你能帮我做这个吗?你知道吗
你公式的最后一部分是
(((df["DailyForecast"])*7)**df["ParameterC"])
((df["DailyForecast"])*7)
和df["ParameterC"]
是**或pow()运算符的操作数。见https://docs.python.org/3/library/operator.html。你知道吗
pow()操作符的调用方式如下:pow(a,b),其中a和b是数字。在代码中,a(第一个操作数)或b(第二个操作数)是字符串。这就是错误消息的原因
发生。你知道吗
您应该检查
((df["DailyForecast"])*7)
或df["ParameterC"]
是否是字符串。你知道吗计算值的类型可能有错误。因为它应该是
float
值而不是str
。你知道吗尝试使用
float()
作为要计算的值。你知道吗例如:
float(df["ParameterC"]))
有关错误的参考,请检查LINK
要解决问题,请确保所有列的格式都正确。你知道吗
相关问题 更多 >
编程相关推荐