Это частный случай вопроса в заголовке.
У меня есть следующий фрейм данных:
values = [[100,54,25,26,32,33,15,2],[1,2,3,4,5,6,7,8]]
columns = ["numbers", "order"]
zipped = dict(zip(columns,values))
df = pd.DataFrame(zipped)
print(df)
numbers order
0 100 1
1 54 2
2 25 3
3 26 4
4 32 5
5 33 6
6 15 7
7 2 8
Представьте, что фрейм данных отсортирован по возрастанию по столбцу порядок .В столбце числа я хочу заменить значения на NaN, если в строках присутствует большее значение, и добиться следующего результата:
numbers order
0 100 1
1 54 2
2 NaN 3
3 NaN 4
4 NaN 5
5 33 6
6 15 7
7 2 8
Какой будет наилучший подход для его достижениябез прохождения цикла?
Обновление: Вероятно, лучший пример для начального DF и ожидаемых результатов (для добавления несмежных блоков значений для замены):
values = [[100,54,25,26,34,32,31,33,15,2],[1,2,3,4,5,6,7,8,9,10]]
numbers order
0 100 1
1 54 2
2 25 3
3 26 4
4 34 5
5 32 6
6 31 7
7 33 8
8 15 9
9 2 10
Результаты:
numbers order
0 100.0 1
1 54.0 2
2 NaN 3
3 NaN 4
4 34.0 5
5 NaN 6
6 NaN 7
7 33.0 8
8 15.0 9
9 2.0 10