Python 如何计算不同四分位值的百分位(Var)?

Python 如何计算不同四分位值的百分位(Var)?,python,pandas,dataframe,numpy,percentile,Python,Pandas,Dataframe,Numpy,Percentile,下面是我的主要python代码。从这里我调用了名为varmethod的方法。以数组的形式传递多个四分位值 CI=[60,70,80,90.5] cl_对象变量法(CI,模拟) 这是我的方法: def varmethod(self、CI、simulationDf): 总计=模拟DF['Grand total'].sum() 打印(总计) 百分位数=np.百分位数(总数,CI) 打印(百分位数) df=pd.DataFrame(CI,列=['CI'])) df['Var']=百分位数 打印(df

下面是我的主要python代码。从这里我调用了名为varmethod的方法。以数组的形式传递多个四分位值


CI=[60,70,80,90.5]
cl_对象变量法(CI,模拟)
这是我的方法:

def varmethod(self、CI、simulationDf):
总计=模拟DF['Grand total'].sum()
打印(总计)
百分位数=np.百分位数(总数,CI)
打印(百分位数)
df=pd.DataFrame(CI,列=['CI']))
df['Var']=百分位数
打印(df)
无论何时运行,它都会显示如下结果:

4.820088072712291e+72
[4.82008807e+72 4.82008807e+72 4.82008807e+72 4.82008807e+72 4.82008807e+72]
CI变量
0 60.0 4.820088e+72
170.0 4.820088e+72
280.0 4.820088e+72
390.5 4.820088e+72

它无法正确计算百分位(Var)。

百分位函数在数组上运行。一个元素数组的50%百分位是元素本身。
因此,要么您不应该
sum()
您的
Grand Total
列,要么您只想将sum()的输出乘以给定的小数,例如
0.6 0.7 0.8…..

我认为正确的方法是
percentiles=np.percentile(总计,模拟DF['Grand total'].values)


在任何情况下,我都不知道您正在计算哪种VaR,但幂为10^72的数字似乎太大了

请您用代码解释一下好吗?请参见更新的答案这里的总计只是模拟总计的总和。是的,那么您想将您的百分位数直接应用到损失模拟中,以便计算变量我试过你的答案,但不起作用。