带有重复列标题的Sumproduct

时间:2019-05-21 20:45:59

标签: python pandas

我有一个带有输入的数据框,其中每个组代表与该组各自的保险费相对应的多个输入值(以下用于测试数据的脚本)

该行中的每个值都是该表的键,该表包含多个危险因素(例如火灾,水灾天气)。

我想做的是创建一个溢价栏,该栏是每个危险因素的总和。在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)

0 个答案:

没有答案