尽管使用了Try语句,Python递归函数仍陷入无限循环

时间:2019-02-02 10:22:26

标签: python pandas recursion

我想编写一个简单的函数,打印出一行熊猫数据框。如果数据帧已经加载到内存中,则我不想重新加载它。如果第一次调用该函数时尚未将其加载到内存中,我想加载它。

我正在使用Try语句来测试数据框是否存在(Testing if a pandas DataFrame exists)。这样做的替代选项会产生NameError,因为DF尚未初始化为None或为空。

global dfIndices

def getSeriesInfo(seriesCode,verbose=False):
    try:
        if verbose:
            print(dfIndices.loc[seriesCode])
        else:
            print(dfIndices.loc[seriesCode]['Data Item Description'])
    # catch when it hasn't even been defined
    except NameError:
        print('I am here.')
        dfIndices = pd.read_excel(dirAppData+'Indicies.xlsx')
        dfIndices.set_index('Series ID',inplace=True)
        getSeriesInfo(seriesCode,verbose)

getSeriesInfo('A2304402X')

假设我尚未加载dfIndicies数据帧,我希望在首次调用该函数时,Try语句将失败,该数据帧将被加载,再次调用该函数,Try传递,该函数停止执行。 / p>

相反,我遇到了无限循环。

为了使我能学到一些东西,为什么这不能按预期工作,我应该怎么做?

谢谢

0 个答案:

没有答案