Преобразование значений None с помощью pandas.to_datetime непредсказуемо - PullRequest
0 голосов
/ 09 октября 2018

Почему pandas преобразует None значения различными способами для to_datetime (непредсказуемо) и to_numeric (предсказуемо)?

import pandas as pd

VALUE = None

print(pd.to_datetime(VALUE))
print(pd.to_numeric(VALUE))

print(pd.__version__)    

возвращает

None
nan
0.23.4

Почему бы не pd.to_datetime(None) is pd.NaT?

1 Ответ

0 голосов
/ 09 октября 2018

Простой ответ: 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...