Есть ли эффективный способ изменить значение предыдущей строки, когда условие встречается в последующей записи?В частности, мне интересно, есть ли способ адаптировать pandas.where для изменения записи в строке до или после условного теста.Предположим, что
Data={'Energy':[12,13,14,12,15,16],'Time':[2,3,4,2,5,6]}
DF = pd.DataFrame(Data)
DF
Out[123]:
Energy Time
0 12 2
1 13 3
2 14 4
3 12 2
4 15 5
5 16 6
Если бы я хотел изменить значение энергии на 'X' всякий раз, когда время <= 2, я мог бы просто сделать что-то подобное.</p>
DF['ENERGY']=DF['ENERGY'].where(DF['TIME'] >2,'X')
или
DF.loc[DF['Time']<=2,'Energy']='X'
Что бы вывести
Energy Time
0 X 2
1 13 3
2 14 4
3 X 2
4 15 5
5 16 6
Но что, если я хочу изменить значение 'Energy' в строке после времени <= 2, так что результат будет на самом деле. </p>
Energy Time
0 12 2
1 X 3
2 14 4
3 12 2
4 X 5
5 16 6
Есть ли легкая модификация для векторизованного подхода к этому?