Интерполировать на основе группы - PullRequest
0 голосов
/ 29 мая 2019

Я пытаюсь выполнить интерполяцию на основе входных данных (test_data_Inputs) во фрейме данных test_data.То, как я сейчас это настроил, это то, что я делаю это с помощью Peril, поэтому я сначала создал фрейм данных, который содержал только пожарную опасность (см. Ниже), а затем выполнил интерполяцию для этой конкретной группы опасностей:

Цель -иметь столбец в test_data_inputs, который имеет как тип опасности, так и фактор.Одна из проблем, с которой я столкнулся, - это ситуация, когда страховая сумма в test_data_input идеально совпадает с фреймом данных test_data.Он по-прежнему интерполируется независимо от того, является ли он идеальным или нет.

fire_peril_test=test_data[test_data['Peril Type'=='Fire']]
from scipy import interpolate
x=fire_peril_test['Amount of Insurance']
x=fire_peril_test['Amount Of Insurance']
y=_fire_peril_test['Factor']
y=fire_peril_test['Factor']
f=interpolate.interp1d(x,y)
xnew=test_data_Inputs["Amount of Insurance"]
ynew=f(xnew)


test_data_Inputs=pd.DataFrame({'Amount of Insurance':[320000,330000,340000]})
test_data=pd.DataFrame({'Amount of Insurance':[300000,350000,400000,300000,350000,400000],'Peril Type':['Fire','Fire','Fire','Water','Water','Water'],'Factor':[.10,.20,.35,.20,.30,.40]})

Оцените всю помощь.

1 Ответ

0 голосов
/ 29 мая 2019
amount_of_insurance=pd.DataFrame()
df['Amount of Insurance']=pd.melt(df['Amount of Insurance'],id_vars=['Amount Of Insurance'],var_name='Peril Type',value_name='Factor')

for peril in df['Amount of Insurance']['Peril Type'].unique():
    #peril='Fire'
    x=df['Amount of Insurance']['Amount Of Insurance'][df['Amount of Insurance']['Peril Type']==str(peril)]
    y=df['Amount of Insurance']['Factor'][df['Amount of Insurance']['Peril Type']==str(peril)]
    f=interpolate.interp1d(x,y)
    xnew=data_for_rater[['Enter Amount of Insurance']]
    ynew=f(xnew)
    append_frame=data_for_rater[['Group','Enter Amount of Insurance']]
    append_frame['Peril Type']=str(peril)
    append_frame['Factor']=ynew
    amount_of_insurance=amount_of_insurance.append(append_frame)

Мое решение с моими фактическими данными. В значительной степени я растопил данные, чтобы иметь возможность просматривать уникальные типы опасностей. Если у вас есть альтернативы, дайте мне знать ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...