我有一个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文件),其中标题ratio
被zr2212
替换。如果我在这些文件上尝试上述功能,我会得到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
错误。我不明白为什么我会在那里得到一个错误
答案 0 :(得分:4)
if e == "no item named ratio":
这是错误的。 e
是一个例外,不是字符串。
取出if
行,它应该有效。