函数中的UnboundLocalError对于某些变量

时间:2018-11-20 16:07:29

标签: python python-3.x pandas

我知道关于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加载的推荐方法是什么吗? 谢谢

0 个答案:

没有答案