我有一个3列的数据框:P,L,Zm和数千行
,我想在每一行上计算'Z'和'erreur'并将结果存储在两列中。所以我写了这个函数,困难是系数随P的值而变化,而我(或者不知道如何)做“面向系列”函数
def modele_p(P,L,Zm):
if np.logical_and(P>=4.0 , P<4.5):
coef_L = modele_p[4.0][0]
cst = modele_p[4.0][1]
elif np.logical_and(P>=5.0 , P<5.5):
coef_L = modele_p[5.0][0]
cst = modele_p[5.0][1]
elif np.logical_and(P>=5.5 , P<6.0):
coef_L = modele_p[5.5][0]
cst = modele_p[5.5][1]
else:
coef_L = 0
cst = 0
Z = coef_L * L + cst
erreur = (Z-Zm)/Zm*100
return (Z,erreur)
我没有找到正确的方法,但尝试了肮脏的方法:
for i in range(len(df)):
df['Z'][i],df['erreur'][i] = calcul_Z_modele_p(df['P'][i],
df['L'][i],
df['Zm'][i])
但是太长了,你能帮我按正确的方式做吗? 谢谢