用pandas.to_datetime转换None值是不可预测的

时间:2018-10-09 11:46:33

标签: python pandas datetime

为什么pandasNone(不可预测)和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 :(得分:1)

简单的答案是datetimes.py中的pd.to_datetime,包括:

if arg is None: 
    return None

为什么选择这种设计是一个更好地针对熊猫开发者的问题,例如您可能希望raise a github issue

如您所见,对列表或系列(即通常用例)的处理是一致的:

VALUE = [None]

pd.to_datetime(VALUE)  # DatetimeIndex(['NaT'], dtype='datetime64[ns]', freq=None)
pd.to_numeric(VALUE)   # [ nan]

作为一种变通方法,对于标量,建议您使用pd.Timestamp

pd.Timestamp(None)     # NaT