Этот вопрос, безусловно, задавался во многих формах ранее, однако мне не удалось найти такой, который включал бы несколько последовательных входов, а также цикл while.Отсюда мой вопрос:
Без необходимости в цикле for перед циклом while возможно ли вывести ряд из этой функции:
def modify_to_100(first, second):
combined = first + second
while combined != 100:
combined += 1
return abs(combined)
Я передаю несколько рядов панд функции.Сериалы всегда одинаковой длины.
In [132]: first = pd.Series([50, 60, 40])
In [133]: second = pd.Series([20, 10, 40])
In [134]: modify_to_100(first,second)
Ошибка, которую я получаю, - она достаточно наглядна и понятна.Однако, поскольку для каждого элемента Серии требуется разное количество циклов, я не знаю, как лучше всего справиться с этой ситуацией.
Out [134]: ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Я попробовал a.all()
, как пример, и, как и ожидалось, это заставляет цикл работать вечно.Никогда не будет времени, когда для всех () чисел будет добавлено 1, и они одновременно достигнут 100.
Другие a.empty(), a.bool(), a.item(), a.any()
, похоже, не применяются.Я неправильно понимаю один из них, который может позволить каждому элементу серии развиваться индивидуально?
Пока все, что я обнаружил, предполагает, что цикл for необходим. Я бы не хотел идти здесь строка за строкой.
Желаемый результат:
100, 100, 100
Любая помощь, разъяснение или эффективный способ прогресса здесь будеточень признателен.