微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用函数时发生错误-IndexError:索引0超出了轴0的范围,尺寸为0

如何解决使用函数时发生错误-IndexError:索引0超出了轴0的范围,尺寸为0

停留在简单的任务上。 dfselect是合并所有数据的主要数据框,我试图在dfselect time的两个值之间进行插值并按。当我运行不带功能的脚本时,它运行良好。但是我在函数中编码的方式是ias sson我是错误

def pt(tim,p,dfselect,temp,gg,h2s,co2,rho,vl,pl,phi):
    import numpy as np
    pt=0
    told=0
    Xold=0
    tstep=tim/20
   
    for N in range(0,20):
        tnew=told+tstep
        ptim=dfselect.loc[(dfselect.elastim==told),['bhppsi']]
        ptim=ptim.iloc[0].values[0]
        ptim_nxt=dfselect.loc[(dfselect.elastim==told+1),['bhppsi']]
        ptim_nxt=ptim_nxt.iloc[0].values[0]
        #ptim=dfselect.bhppsi.loc[dfselect['elastim']==told].values[0]
        #ptim_nxt=dfselect.bhppsi.loc[dfselect['elastim']==told+1].values[0]
        x=np.array([told,told+1]) ; y=np.array([ptim,ptim_nxt])
        p_new = np.interp(tnew,x,y) #interpolate press frpm time
        #x=np.array([told,tnew,np.nan,ptim_nxt])
        #w = np.isnan(y);y[w] = 0.
        #p_new=sp.interpolate.UnivariateSpline(x,y)
                
        vis=gas_mu(temp,p_new,co2)
        ctst=ctstar(rho,phi,co2)
        Xnew=tnew/(vis*ctst)
        pt=pt+(Xold+Xnew)/2*tstep
        told=tnew
        Xold=Xnew
    return pt

得到此错误-

ptim=dfselect.loc[(dfselect.elastim==told),['bhppsi']]

IndexError: index 0 is out of bounds for axis 0 with size 0

试图浏览过去的帖子,但无法找到我要去的地方。谢谢。

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