Это обсуждалось в проекте Pandas ранее.
См., Например, этот комментарий в PR # 10372 , который реализует код, который делает date()
return NaT
вместо того, чтобы выдавать ошибку:
Я думаю, что вещи с датой должны быть NaT, например, дата, сейчас, сегодня
Согласовано. NaT - это экземпляр даты и времени, а также экземпляр даты.
Со временем у меня тоже все в порядке, хотя это и раздвигает границы семанти c
I не согласны. NaT не является временным случаем. Мы не должны возвращать его из метода, который обещает вернуть время.
Так что все сводится к типу NaT
, реализующему те же интерфейсы, что и Python datetime * Типы 1025 * и date , но не тип time .
Это естественно, поскольку Pandas метки времени могут представлять собой полную метку времени (с датой и временем) или дата, но не время, независимое от даты.
По этой причине те немногие функции, которые преобразуют или возвращают объекты этих двух типов, вернут NaT
, в то время как большинство других выдает ошибку.