Как сохранить предыдущее значение, чтобы найти строку, которая больше его?Python

Программы на Python
Anonymous
Как сохранить предыдущее значение, чтобы найти строку, которая больше его?

Сообщение Anonymous »

Это мой фрейм данных:
import pandas as pd
df = pd.DataFrame(
{
'start': [3, 11, 9, 19, 22],
'end': [10, 17, 10, 25, 30]
}
)

И ожидаемый результат — создание столбца x:
start end x
0 3 10 10
1 11 17 17
2 9 10 NaN
3 19 25 25
4 22 30 NaN

Логика:
Я объясняю это построчно. Для строки 0 x равен df.end.iloc[0]. Теперь это значение x необходимо сохранить до тех пор, пока в следующих строках и в начальном столбце не будет найдено большее значение.
Поэтому тогда следует сохранить 10 процесс переходит к строке 1. 11 > 10? Если да, то x второй строки равен 17. Для следующей строки 9 > 17? Нет, поэтому значение равно NaN.
Процесс переходит к следующей строке. Поскольку не обнаружено значений, превышающих 17, сохраняется 17. 19 > 17? Да, поэтому для x установлено значение 25. И для последней строки, начиная с 22 row['end']:
x = row['end']
l.append(x)

Я предоставил дополнительные примеры с разными df и желаемыми результатами:
df = pd.DataFrame({'start': [3, 20, 11, 19, 22],'end': [10, 17, 21, 25, 30]})
start end x
0 3 10 10.0
1 20 17 17.0
2 11 21 NaN
3 19 25 25.0
4 22 30 NaN

df = pd.DataFrame({'start': [3, 9, 11, 19, 22],'end': [10, 17, 21, 25, 30]})
start end x
0 3 10 10.0
1 9 17 NaN
2 11 21 21.0
3 19 25 NaN
4 22 30 30.0

df = pd.DataFrame({'start': [3, 11, 9, 19, 22],'end': [10, 17, 21, 25, 30]})
start end x
0 3 10 10.0
1 11 17 17.0
2 9 21 NaN
3 19 25 25.0
4 22 30 NaN


Подробнее здесь: https://stackoverflow.com/questions/786 ... er-than-it

Вернуться в «Python»