Я прочитал несколько вопросов о цикле for pandas Dataframe, но не смог решить его для моего случая
px=pd.read_sql()
for i, row in px.iterrows():
if x == 1 :
if px['first'] <= S1 :
S1 = px['first'];
if px['second'] > S2 :
previous_value = last_value;
last_value = px['second'];
x = 0;
else :
.....
Это, конечно, часть кода, показывающая логику цикла. Я ожидал, что строки будут считываться одна за другой, так как я могу сравнивать значения каждой строки с предыдущей строкой, но
ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().






Вы получаете доступ ко всему столбцу px['first'] изнутри цикла, который предназначен для доступа только к одной записи за раз.
Чтобы исправить текущий цикл, достаточно просто мощь заменить px['first'] на row['first'], а также px['second'] на row['second'].
Лучше было бы заменить этот ручной цикл эквивалентными выражениями pandas, которые будут намного быстрее и удобочитаемы. Если вы опубликуете полный код (отредактируйте под вопросом, а не как комментарий!), Мы сможем помочь.
Приятно слышать! Глядя на опубликованный вами код, я не вижу простого способа сделать это с помощью панд - и если код работает достаточно быстро, скорость не имеет значения :)
Я согласен с тем, что выражения pandars будут намного быстрее, но я сомневаюсь, что можно обработать весь код с помощью pandas. Я разместил исходный код, из которого пытаюсь перенять код Python.