我想编写一个简单的函数,打印出一行熊猫数据框。如果数据帧已经加载到内存中,则我不想重新加载它。如果第一次调用该函数时尚未将其加载到内存中,我想加载它。
我正在使用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>
相反,我遇到了无限循环。
为了使我能学到一些东西,为什么这不能按预期工作,我应该怎么做?
谢谢