Python通过应用公式创建新列

时间:2019-10-22 12:34:37

标签: python pandas dataframe

TE
TES-100
TEST-1
TEST-6
TESTT-0
TEXT-2
109

我的输入数据框;

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

但是我收到了此错误消息;

  

TypeError:**或pow()不支持的操作数类型:“ float”和   'str'

您能帮我吗?

3 个答案:

答案 0 :(得分:0)

要解决您的问题,请确保所有列的格式正确。

df = df.apply(pd.to_nuneric) 

答案 1 :(得分:0)

关于计算值的类型可能是错误的。因为应该是float值而不是str

尝试使用float()进行计算。

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

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

答案 2 :(得分:0)

公式的最后一部分是

(((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:**或pow()不支持的操作数类型:“ float”和   'str'

发生。

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