KeyError:你没有名为<name>'</name>的项目

时间:2013-10-18 08:09:26

标签: python pandas dataframe

我有这个功能,可以将数据放入另一个数据帧。

def set_var(self,navn,periode,value):
    try:
        if navn.upper() not in self.data:
            self.data[navn.upper()]=NaN
        self.data[navn.upper()].ix[periode]=value
    except:
        print('> fejl ved genmning af:',navn,'i',periode)
        print( self.data[navn.upper()])
    return

然后我像这样迭代,这填充数据:

for idx, val in enumerate(bd):
    if val not in ('Navn','Type','Aarstal','Referenceperiode','Registreringsnummer','nummer','navn','navn1','period', 'regnr'):
        for row in bd.itertuples():
            banker.set_var((str(row[6])+'_'+str(val)),row[60], row[idx+1])

我收到错误:KeyError: u'no item named <name of first item I try to insert>'

为什么会这样?

1 个答案:

答案 0 :(得分:2)

键错误通常是因为dict对象没有您请求的键。在我看来,self.data是一个词典。如果是这样,你可以使用has_key()来测试你的对象......就像这样,

if self.data.has_key(navn.upper()):
        self.data[navn.upper()]=NaN