为什么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
?
答案 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