У меня есть набор данных со значениями в столбце A, представляющих счет. Я хочу вычислить столбец B, где я могу видеть, как долго оценка равна или выше, чем в последнем ряду. Если значение ниже, тогда я установлю значение в столбце B для этой строки равным 0.
Я пробовал следующее:
df = pd.DataFrame({'A': [140, 145,148, 150, 100, 105, 106]})
df['B'] = 0
df.loc[df['A'].diff() >= 0, 'B'] = df['B'].shift() + 1
В результате получается следующее
A B
0 140 0.0
1 145 1.0
2 148 1.0
3 150 1.0
4 100 0.0
5 105 1.0
6 106 1.0
Итак, я понимаю, что условие проверяется для каждой строки, но, к сожалению, кажется, что оно рассчитывается все вместе, так что оно не увеличивает значение B, как ожидалось, поскольку во время вычисления для каждой строки значение строки -1 .shift()
по-прежнему 0.
Как мне это сделать, чтобы получить следующий результат?:
A B
0 140 0
1 145 1
2 148 2
3 150 3
4 100 0
5 105 1
6 106 2