如何使用另一个数据框列值过滤一个数据框列值?

如何解决如何使用另一个数据框列值过滤一个数据框列值?

下面是我的数据框:Df1

origin        2001-01-01 00:00:00  2002-01-01 00:00:00  2003-01-01 00:00:00  ...  2009-01-01 00:00:00  2010-01-01 00:00:00   Grand Total
Simulation 1         2.281294e+13                  NaN         1.459444e+20  ...         1.618202e+59         6.811895e+64  1.748673e+72
Simulation 2         2.175246e+13                  NaN         1.711078e+20  ...         1.388109e+59         5.608744e+64  2.106283e+72
Simulation 3         2.280800e+13                  NaN         1.422197e+20  ...         9.737150e+58         2.589176e+64  9.651312e+71
Simulation 4         2.426074e+13                  NaN         1.369407e+20  ...         1.063072e+59         2.921763e+64  1.961873e+71

第二个数据框:df2

 CI           Var 
0  60.0  3.009765e+72 
1  70.0  3.511393e+72 
2  80.0  4.013020e+72 
3  90.5  4.539729e+72 

下面是我的代码:

class cl_test():
    @classmethod
    def resamledtriangle(self,n_sims):
        # Load triangle
        triangle = cl.load_sample('genins')
        # Use bootstrap sampler to get resampled triangles
        bootstrapdataframe = cl.BootstrapODPSample(n_sims = n_sims,random_state=42).fit(triangle).resampled_triangles_

        #converting to dataframe
        resampledtriangledf1 = bootstrapdataframe.to_frame()
        #print(resampledtriangledf1)
        Reserve_val = []
        iter_count=0
    
        while (iter_count < n_sims):
            bg = resampledtriangledf1[resampledtriangledf1.index==iter_count]
            resampledtriangledf = bg.pivot_table(index="origin",columns="development",values="values")
            #print(resamp)
            #final = resampledtriangledf[::-1].bfill().iloc[0]
            final2 = resampledtriangledf.ffill(axis=1).iloc[:,-1]
            resampledtriangledf = resampledtriangledf.assign(Total = final2.values)
            #resampledtriangledf = resampledtriangledf.append(pd.Series(totTriangleDf1.sum(),name='Total')).append(pd.Series(final,name='Latest Observation'))
            #calculating grand total of each row and column
            #resampledtriangledf['Grand Total'] = resampledtriangledf.sum(axis=1)
            #resampledtriangledf.loc["Grand Total"] = resampledtriangledf.sum() 
            resampledtriangledf = resampledtriangledf.append(pd.Series(resampledtriangledf.sum(),name='Grand Total'))  
            resampledtriangcdfwa1 = resampledtriangledf.shift(-1,axis=1).loc['Grand Total'] / (resampledtriangledf.loc['Grand Total'])
            resampledtriangledf = resampledtriangledf.append(pd.Series(resampledtriangcdfwa1,name='Weighted Average'))
            c = resampledtriangledf.iloc[1][::-1].replace(np.inf,np.nan).dropna().cumprod()
            resampledtriangledf = resampledtriangledf.append(c.rename('CDF'))

            s = resampledtriangledf.iloc[:,:][:-2].copy()
            ultiCalc = pd.DataFrame()
            ultiCalc['Latest']= s['Total']
            ultiCalc['CDF'] = np.flip(resampledtriangledf.loc['CDF'].values) 
            ultiCalc['Ultimate'] = ultiCalc['Latest']*ultiCalc['CDF'] 
            ultiCalc['Unpaid'] = ultiCalc['Ultimate']-ultiCalc['Latest']
            ultiCalc = ultiCalc.append(pd.Series(ultiCalc.sum(),name='Total'))
            #ultiCalc = ultiCalc.iloc[:,:-1]
            iter_count+=1
            Reserve_val.append(ultiCalc['Unpaid'])  


        simulationDf = pd.DataFrame([x for x in Reserve_val]).reset_index(drop=True)
        simulationDf.index = 'Simulation ' + (simulationDf.index + 1).astype(str)
        simulationDf = simulationDf.iloc[:,:-1]
        return simulationDf

    def varmethod(self,CI,simulationDf):
        total = simulationDf['Grand Total'].sum() 
        df = pd.DataFrame(CI,columns=['CI'])
        for value,data in enumerate(CI): #== The enumerate() method adds counter to an iterable and returns it (the enumerate object).
            CI[value]=(data/100)*(total)
        df['Var'] = CI
        print(df)
        return df

在这里,我必须迭代来自 df2 的 var 值,并与 df 数据帧的总计列进行比较。并创建新的数据框并存储所有大于 Var 值的总计值。 例如: Var 列的第一个值是 3.009765e+72。我必须从 df1 create dataframe 的总计中过滤所有更大的值。 接下来,我们必须过滤 Var(3.511393e+72) 的第二个值并创建数据帧。就这样

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 &lt;select id=&quot;xxx&quot;&gt; SELECT di.id, di.name, di.work_type, di.updated... &lt;where&gt; &lt;if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 &lt;property name=&quot;dynamic.classpath&quot; value=&quot;tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-