我知道关于UnboundLocalError
的问题很多,但我认为这一问题略有不同。我有以下功能:
def import_RO(dir):
os.chdir(dir+r'\SIFE\Procedimienros RO')
for a in ['2014','2015','2016','2017']:
globals()['RO%s' % a]= pd.read_csv('RO '+a+'.txt' ,sep='~')
globals()['RO%s' % a]['año']= a
RO2017=RO2017[RO2017.agendamiento_id.apply(lambda x: x.isnumeric())]
dfRO=RO2014.append(RO2015)
dfRO=dfRO.append(RO2016)
dfRO=dfRO.append(RO2017)
dfRO.reset_index(drop=True, inplace=True)
return dfRO
因此...第RO2017=RO2017[RO2017.agendamiento_id.apply(lambda x: x.isnumeric())]
行带来了错误,我解决了在该行之前添加此行的问题:
RO2017=globals()['RO%s' % '2017']
但是我认为那会在行dfRO=RO2014.append(RO2015)
上给我带来同样的错误,因为现在我正在引用这两个全局变量。问题是,它起作用了,我不知道为什么。
此外,我知道globals
是最后的手段,我想使我的代码更具Pythonic风格。您知道在循环中处理多个DataFrame加载的推荐方法是什么吗?
谢谢