Python使用Formu创建一个新列

2024-09-26 17:55:40 发布

您现在位置:Python中文网/ 问答频道 /正文

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'

你能帮我做这个吗?你知道吗


Tags: 数据代码importdfasstats库存scipy
3条回答

你公式的最后一部分是

(((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(第二个操作数)是字符串。这就是错误消息的原因

TypeError: unsupported operand type(s) for ** or pow(): 'float' and 'str'

发生。你知道吗

您应该检查((df["DailyForecast"])*7)df["ParameterC"]是否是字符串。你知道吗

计算值的类型可能有错误。因为它应该是float值而不是str。你知道吗

尝试使用float()作为要计算的值。你知道吗

例如:float(df["ParameterC"]))

有关错误的参考,请检查LINK

要解决问题,请确保所有列的格式都正确。你知道吗

df = df.apply(pd.to_nuneric) 

相关问题 更多 >

    热门问题