У меня есть столбец DateTime в кадре данных pandas, и я хочу создать новый столбец, который будет заполняться условно на основе значения datetime_column.
Пример моего кадра данных:
datetime_column
2018-09-19 17:00:03
NaT
NaT
NaT
2018-09-20 07:00:30
NaT
NaT
NaT
2018-09-21 13:00:30
NaT
NaT
NaT
Nat
2018-09-22 20:00:30
NaT
NaT
NaT
NaT
2018-09-22 04:00:30
ЕслиЗначение datetime_column находится между временем 00:00:00 и 09:00:00, оно должно заполнить его предыдущим значением, иначе оно должно быть заполнено тем же значением, что и значение datetime_column
Ожидаемый фрейм данных:
datetime_column datetime_column_x
2018-09-19 17:00:03 2018-09-19 17:00:03
NaT
NaT
NaT
2018-09-20 07:00:30 2018-09-19 17:00:03
NaT
NaT
NaT
2018-09-21 13:00:30 2018-09-21 13:00:30
NaT
NaT
NaT
Nat
2018-09-22 20:00:30 2018-09-22 20:00:30
NaT
NaT
NaT
NaT
2018-09-22 04:00:30 2018-09-22 20:00:30
Пробный код:
start_time : '00:00:00'
end_time : '12:00:00'
df['datetime_column_x'] = np.where((df['datetime'] >= start_time &
df['datetime']<= end_time), df['datetime']-1,
df['datetime'])
Но приведенный выше код дает мне ошибку:
TypeError: cannot compare a dtyped [datetime64[ns]] array with a scalar of type [bool]
Я был бы очень признателен, если бы я мог помочь с этим.