---- последнее обновление ---- В определении переменной переменной «mtindex» вместо запятой была указана запятая, которая заставляла python возвращать два значения для правда состояние.Оператор Python if с двумя условиями - значение истинности массива неоднозначное
---- Обновленный вопрос ----
Я получаю сообщение об ошибке при запуске оператора if внутри цикла for.
Первый цикл for for определяет два переменных «pctchange» и «pctchangeindex» как целые числа, основанные на значении, извлеченном из фрейма данных. Таким образом, они определяются как новое значение для каждого значения x, через которое проходит цикл. Затем я сравниваю разницу между этими двумя с другой переменной (integer), определенной за пределами этого цикла. Я делаю это через, если заявление, которое проходит внутри для цикла - так, что для каждого нового назначения значений для моих двух переменных цикла это, если условие проверяется:
for x in range(1,numdays-holdperiod1):
pctchange = (int taken from dataframe)
pctchangeindex = (int taken from dataframe)
if ((pctchange - pctchangeindex) > mtindex and x-1 not in
positioncheck1) :
calculate some things
Когда это запустить линию, если заявление дает мне сообщение об ошибке:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Я не смог это решить. То, что я протестировал, заключается в том, что я получаю ту же ошибку, когда я удаляю вторую часть оператора if, поэтому это не должно быть «и», указывающее на ошибку. Я бы ожидал, что, поскольку оператор if имеет отступ по отношению к циклу for, он запускается для каждого нового назначения переменных в цикле for? Надеюсь, что на этот раз мой вопрос более ясен, и я получаю отклик, так как эта проблема мешает мне в течение нескольких месяцев.
---- Старый вопрос ---- У меня есть инструкция if с двумя условиями внутри определения функции. Та часть, которая вызывает ошибку заключается в следующем:
if (pctchange - pctchangeindex > mtindex and x-1 not in positioncheck1) :
я получаю точную ошибку в PyCharm:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
Я видел другие темы decribing ту же ошибку, и говоря, что это вызвано Numpy интерпретации массивов по-разному , Вторая часть условия if проверяет, находится ли данное значение в 'positioncheck1', которое является стандартным списком python.
Также укажите содержание, которое хранят ваши переменные –
, сообщите нам, что у всех переменных есть/есть? –
В чем вопрос? И сообщение об ошибке сообщает вам, в чем проблема и что делать. –