我正在尝试将Pandas DataFrame列中的NaN(dtype:float64)值转换为NaT值。
请请注意,我有几个具有相同 Order_date 列的DataFrame。一些 Order_date 列的dtypes是float64(用NaN填充),而其他的dtypes是datetime64 [ns](用NaT填充)。
我尝试了以下内容:
df.loc[:,'Order_date'] = df.loc[:,'Order_date'].astype(np.datetime64).fillna(pd.NaT)
但是,我得到一个错误结果:
TypeError: cannot astype a datatimelike from [datetime64[ns]] to [datetime64].
这个错误背后的原因是什么?我认为错误是由于某些DataFrame中的几个Order_date列具有NaT值(datetime64 [ns])。 如何才能成功将具有NaN值的Order_date列转换为Pandas中的NaT值,并保留已经具有NaT值的剩余Order_date列?
答案 0 :(得分:0)
我可能误解了问题的要求,但不会
df['Order_date'].fillna(pd.NaT, inplace=True)
做这个工作?
答案 1 :(得分:0)
使用pd.to_datetime()
怎么样?像这样:
pd.to_datetime(df.loc[:,'Order_date'])
应该返回pd.NaT
而不是np.NaN