Столбец 'signal' заполнен 0 или 1, и я хочу, чтобы столбец 'reverse' сообщал мне, когда происходит изменение в этом столбце (то есть, от 0 до 1 или от 1 до 0).
Проблема: код ниже дает мне эту информацию правильно для всех строк, кроме первой.Причина в том, что он пытается посмотреть на значение перед первым для столбца «сигнал», и, поскольку он не находит никакого значения (конечно, это первое!), Он говорит, что есть изменение (как это происходит, когда значение столбца изменяется с 0 на 1 или с 1 на 0).
Как это исправить?Я бы хотел, чтобы код игнорировал первое расхождение, в основном.
import pandas as pd
import numpy as np
d= {'signal':[0,0,0,1,1,0]}
df_zinc = pd.DataFrame(data=d)
df_zinc['reversal'] = np.where(df_zinc['signal']!=df_zinc['signal'].shift(),1,0)
print(df_zinc)
ВЫХОД
signal reversal
0 0 1
1 0 0
2 0 0
3 1 1
4 1 0
5 0 1