在赋值错误之前引用变量

时间:2014-09-18 18:53:50

标签: python csv

我有一个csv文件,我从中读取一些值并计算平均值和标准差。我正在使用pandas与我的csv文件一起工作。为了计算平均值,我这样做:

def mean(filename):
    csva = pd.read_csv(filename, header =0)
    ratios = np.array(csva["ratio"])
    return ratios[~np.isnan(ratios)].mean()

这很好用。但是,有一些文件(2/10文件),其中标题ratiozr2212替换。如果我在这些文件上尝试上述功能,我会得到KeyError : u'no item named zr2212'。所以我修改了我的代码:

def mean(filename):
        csva = pd.read_csv(filename, header =0)
        try:
            ratios = np.array(csva["ratio"])
        except KeyError as e:
            if e == "no item named ratio":
                ratios = np.array(csva["zr2212"]
        return ratios[~np.isnan(ratios)].mean()

但是我在UnoundLocalError: local variable 'ratios' referenced before assignment声明中收到return错误。我不明白为什么我会在那里得到一个错误

1 个答案:

答案 0 :(得分:4)

if e == "no item named ratio":

这是错误的。 e是一个例外,不是字符串。 取出if行,它应该有效。