检索值以执行简单的Y=a*x+b&获取

2024-10-02 02:35:35 发布

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

我正在为新手做一个关于Python的培训。我很难完成最后的家庭作业

我想应用代码开头定义的“系数”,这取决于样本中每个个体的种类

coeffs = {
    "cas 1" : {'a': [0.38599421003086465] , 'b':[0.5092683365300003]},
    "cas 2" : {'a': [1.7875014940283396] , 'b':[1.4593274917352779]},
    "cas 3" : {'a': [0.6992505959712975] , 'b':[1.0377429413261892]},
    "cas 4" : {'a': [0.9735704312621848] , 'b':[0.8094893720788445]},
}
lignes_modifiees = []


for (i,individu) in iris.iterrows(): # pour chaque individu de iris,...
    if pd.isnull(individu["petal_width"]): #... on test si individu["petal_width"] est nul.
        a = coeffs["cas 1"]['a']
        b = coeffs["cas 1"]['b']
        X = individu["petal_length"]
        Y = a*X + b
        iris.loc[i,"petal_width"] = Y # on remplace la valeur manquante par Y
        lignes_modifiees.append(i)
        print("On a complété petal_width par {} a partir de petal_length={}".format(Y,X))

    if pd.isnull(individu["sepal_width"]): #... on test si individu["sepal_width"] est nul.
        # je dois appliquer les coeffs de l'espèce, soit 2 si setosa, 3 si virginica et 4 si versicolor
        espece = individu["species"] # je dois appliquer les coeffs de l'espèce, soit 2 si setosa, 3 si virginica et 4 si versicolor
        if individu["species"] == "setosa":
            a = 1.7875014940283396
            b = 1.4593274917352779
        elif individu["species"] == "virginica":
            a = 0.6992505959712975
            b = 1.0377429413261892
        elif individu["species"] == "versicolor":
            a = 0.9735704312621848
            b = 0.8094893720788445
        X = individu["petal_width"]
        Y = a*X + b #ERROR HERE
        iris.loc[i,"sepal_width"] = Y # on remplace la valeur manquante par Y
        lignes_modifiees.append(i)
        print("On a complété sepal_width par {} a partir de l'espece:{} et de petal_width={}".format(Y,espece,X))

对于第二个main“if”(第一个可以正常工作)我得到了以下错误:TypeError:cannot cannot multiply sequence by non int of type'float'

理想情况下,我希望;b检索“系数”如下:

if individu["species"] == "setosa":
       a = coeffs["cas 1"]['a']
       b = coeffs["cas 1"]['b']

它也不起作用

我不擅长这个!谢谢:)


Tags: irisifondewidthspeciescaspar

热门问题