使用熊猫的泊松过程的KeyError

问题描述

我正在尝试创建一个函数,该函数将模拟毒害过程以改变dt和总时间,并且具有以下功能

def compound_poisson(lamda,mu,sigma,dt,T):

points = pd.Series(0)
out = pd.Series(0)
inds = simple_poisson(lamda,T)

for ind in inds.index:
    
    if inds[ind+dt] > inds[ind]:
        points[ind+dt] = np.random.normal(mu,sigma)
        
    else:
        points[ind+dt] = 0
        
out = out.append(np.cumsum(points),ignore_index=True)

out.index = np.linspace(0,T,int(T/dt + 1))

return out

但是,我收到一个“ KeyError:0.010000000000000002”,它根本不应该在索引中。这是因为浮动对象松懈吗?

解决方法

简而言之,是的,这是一个浮点错误。很难知道你是怎么到达那里的,但是可能是这样的:

>>> 0.1 * 0.1
0.010000000000000002

也许使用round