我有一个带有输入的数据框,其中每个组代表与该组各自的保险费相对应的多个输入值(以下用于测试数据的脚本)
该行中的每个值都是该表的键,该表包含多个危险因素(例如火灾,水灾天气)。
我想做的是创建一个溢价栏,该栏是每个危险因素的总和。在premium_output_df中输出示例。
input_df是我的起始数据看起来很小但列字段较少的示例。
amount_of_insurance_df是该表的表示,其中包含危险因子,每组对应于“保险金额”值。
领土df是包含危险领土因素的表的表示形式。
为例,第1组的溢价将是风险的总和。 (0.1 * 0.94)+(0.2 * 0.3)= 0.154 =总保费组1
让您大致了解我用来收集数据的过程。
input_df中的每一列代表一个合并表,以收集每个风险的因素,请参见下面的示例,说明为实际(而非原始)数据集进行的合并。
amount_of_insurance=pd.merge(data_for_rater["Enter Amount of Insurance"],
df['Amount of Insurance'],
how='left',
left_on='Enter Amount of Insurance' ,
right_on='Amount Of Insurance')
我当前的方法如下:
concat_df=pd.concat([amount_of_insurance_df,data_territory],axis=1,sort=False)
prod_concat=concat_df.groupby(level=0,axis=1).prod()
然后只需添加两列,“对更好的前进方式有何想法?”
测试数据
input_data={'Group':[1,2,3,4,5],'Amount of Insurance':[28000,28000,28000,28000,28000],'Territory':[701,702,703,704,705]}
data_amount_of_insurance={'Amount of Insurance':[28000,28000,28000,28000,28000],'Fire':[.10,.20,.30,.40,.50],'Water Weather':[.20,.30,.40,.50,.60]}
data_territory={'Territory':[701,702,703,704,705],'Fire':[.94,.95,.96,.97,.98],'Water Weather':[.30,.40,.50,.60,.70]}
input_df=pd.DataFrame(input_data)
amount_of_insurance_df=pd.DataFrame(data_amount_of_insurance)
territory_df=pd.DataFrame(data_territory)
premium_output_data={'Group':[1,2,3,4,5],'Amount of Insurance':[28000,28000,28000,28000,28000],'Territory':[701,702,703,704,705],'Fire Premium':[0.094,0.19,0.288,0.388,0.49],'Water Weather Premium':[0.06,0.12,0.2,0.3,0.42],'Total Premium':[0.154,0.31,0.488,0.688,0.91]}
premium_output_df=pd.DataFrame(premium_output_data)