如何在Python中将NaT转换为NaN

问题描述 投票:4回答:1

我有如下数据框

df.head(3)

ORD     Date1                   Date2           
717 2020-03-04T00:00:00Z    2020-03-04T00:00:00Z
722 NaT                     2020-03-15T00:00:00Z
719 2020-05-14T00:00:00Z    NaT

我想将所有NaT转换为NaN

预期输出

ORD   Date1                   Date2           
717 2020-03-04T00:00:00Z    2020-03-04T00:00:00Z
722 NaN                     2020-03-15T00:00:00Z
719 2020-05-14T00:00:00Z    NaN

如何完成

python-3.x pandas dataframe python-datetime converters
1个回答
2
投票

显然没有必要在大熊猫中,因为NaT的处理类似于NaN

可以通过一点技巧,但日期时间转换为对象:

df = df.astype(object).mask(df.isna(), np.nan)
print (df)
   ORD                      Date1                      Date2
0  717  2020-03-04 00:00:00+00:00  2020-03-04 00:00:00+00:00
1  722                        NaN  2020-03-15 00:00:00+00:00
2  719  2020-05-14 00:00:00+00:00                        NaN

print (df.dtypes)
ORD      object
Date1    object
Date2    object
dtype: object

编辑:

df = df.mask(df == 'NaT', np.nan)
© www.soinside.com 2019 - 2024. All rights reserved.