Я написал код для выполнения интерполяции на основе двух критериев: страховой суммы и вычитаемой суммы%. Я изо всех сил пытался сделать интерполяцию все сразу, поэтому разделил фильтрацию. Таблица hf содержит известные данные, которые я использую, чтобы основывать свои результаты интерполяции. Таблица df содержит новые данные, которые нуждаются в сложившихся факторах, интерполированных на основе hf ,
Прямо сейчас моя работа вокруг - сначала отфильтровать каждую таблицу на основе процента ded_amount, а затем выполнить интерполяцию в пустой фрейм данных и добавлять после каждого l oop.
Я чувствую себя так неэффективно, и есть лучший способ сделать это, надеясь услышать некоторые отзывы о некоторых улучшениях, которые я могу сделать. Спасибо
Данные испытаний приведены ниже.
import pandas as pd
from scipy import interpolate
known_data={'AOI':[80000,100000,150000,200000,300000,80000,100000,150000,200000,300000],'Ded_amount':['2%','2%','2%','2%','2%','3%','3%','3%','3%','3%'],'factor':[0.797,0.774,0.739,0.733,0.719,0.745,0.737,0.715,0.711,0.709]}
new_data={'AOI':[85000,120000,130000,250000,310000,85000,120000,130000,250000,310000],'Ded_amount':['2%','2%','2%','2%','2%','3%','3%','3%','3%','3%']}
hf=pd.DataFrame(known_data)
df=pd.DataFrame(new_data)
deduct_fact=pd.DataFrame()
for deduct in hf['Ded_amount'].unique():
deduct_table=hf[hf['Ded_amount']==deduct]
aoi_table=df[df['Ded_amount']==deduct]
x=deduct_table['AOI']
y=deduct_table['factor']
f=interpolate.interp1d(x,y,fill_value="extrapolate")
xnew=aoi_table[['AOI']]
ynew=f(xnew)
append_frame=aoi_table
append_frame['Factor']=ynew
deduct_fact=deduct_fact.append(append_frame)