У меня есть файл 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
заявлении. Я не понимаю, почему я получаю там ошибку
У вас есть синтаксическая ошибка в этой строке 'ratios = np.array (csva [" zr2212 "]' you omit') 'это копия прошлого? – Kasramvd