Я получил Dataframe с 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])
Но это слишком долго, не могли бы вы помочь мне сделать это правильно?Спасибо