Простой ответ: pd.to_datetime
в datetimes.py
включает в себя:
if arg is None:
return None
Почему был выбран этот вариант дизайна, вопрос лучше направить наРазработчики Pandas, например, вы можете поднять проблему github .
Как вы обнаружили, обработка со списком или сериями, то есть обычным случаем использования, является последовательной:
VALUE = [None]
pd.to_datetime(VALUE) # DatetimeIndex(['NaT'], dtype='datetime64[ns]', freq=None)
pd.to_numeric(VALUE) # [ nan]
В качестве обходного пути для скаляров я предлагаю использовать pd.Timestamp
:
pd.Timestamp(None) # NaT