У меня есть датафрейм df
, где выглядит голова:
BB DATE PX
0 1333 JP 2014-03-04 471300.0
1 1333 JP 2014-04-04 132900.0
2 1333 JP 2014-04-07 150400.0
3 1333 JP 2014-04-13 191900.0
4 2345 JP 2014-04-14 218900.0
Я хотел бы создать новый столбец с именем скажем FLAG
, который устанавливается с использованием 2 условий
1. Взгляните на столбец с именем BB
и для каждой строки возьмите текущее значение, посмотрите на предыдущий день и сравните значения. Если значения одинаковы
и
- Если абсолютная разница между текущей
DATE
и вчерашней датой больше 3
Затем установите FLAG
= 1, в противном случае установите FLAG
= 0
Поэтому в этом примере новый столбец FLAG будет выглядеть как
BB DATE PX FLAG
0 1333 JP 2014-03-04 471300.0 0
1 1333 JP 2014-04-04 132900.0 1
2 1333 JP 2014-04-07 150400.0 0
3 1333 JP 2014-04-13 191900.0 1
4 2345 JP 2014-04-14 218900.0 0
Если индекс равен 1, вы можете видеть значение BB
в этой строке и для предыдущей строки одинаковые, но абсолютная разница между DATE
для двух строк больше 3. То же самое верно и для индекса = 3.
Я пробовал:
if df.BB.shift(1) = df.BB.shift(0) & abs(df.DATE.shift(1) - df.DATE.shift(0)) >3 :
df['FLAG'] = 1
else:
df['FLAG'] = 0
Но не могу заставить его работать.