Рассмотрим, как избежать ключевую проблему, которая может возникнуть при использовании излюбленной условной конструкции - where пакета NumPy со значениями из DataFrame.
В большом количестве случаев ее применение вызывает ожидаемый результат, однако зачастую происходит путаница типов. Для демонстрации построим датафрейм:
Попытка заменить в столбце date_time значения даты приведет к следующему результату:
При этом типы данных отдельных элементов в столбце и у нового значения совпадают, а тип данных всего столбца - datetime64 модуля NumPy:
Для решения проблемы можно преобразовать значение новой даты в datetime64:
Либо можно использовать аналогичные where методы библиотеки Pandas. В частности, существуют два метода датафрейма, позволяющие добиться цели - where и mask. where применяет заменяемое значение из второго аргумента, когда условие ложно, а mask - когда истинно.