将elif语句添加到df.iterrows()循环后出错



所以我在第一个if语句中没有得到任何语法错误。当我添加第二个elif时,下一行出现语法错误:NPI=df["NPI2"]^SyntaxError:语法无效

不确定为什么会发生这种情况,因为第一个if语句本质上与elif-相同

这是我的代码:

for i, row in df.iterrows():
NPI2 = row["NPI2"]

if row["CapDesignation"] == "R" and row["BR"] >= row["CapThreshold"]:
NPI2 = row["CapThreshold"]*row['KBETR']-.005
df.at[i,"NPI2"] = NPI2
df.at[i,"BR"] = NPI2/row["KBETR"]

elif row["CapDesignation"] == "N" and row["BN"] >= row["CapThreshold"]:
NPI2 = row["CapThreshold"]*(row["KBETR"]-row["P"])-.005
df.at[i,"NPI2"] = NPI2
df.at[i,"BN"] = NPI2/((row["KBETR"]-row["P"])


NPI = df["NPI2"]
df["KBETR_N"] = round(R + Delta_P + NPI,2)

如果没有回溯消息,不确定错误在哪里,但应该是:df.at[i,"BN"] = NPI2/((row["KBETR"]-row["P"]),其中((row["KBETR"]中有2个圆括号,而不是1(如果希望用圆括号包围row["KBETR"]-row["P"](。

最新更新