具有日期时间的np.where产生Unix时间戳

时间:2019-12-17 15:52:34

标签: python pandas

我有一个带有一列的数据框,该列的时间戳数据为空。我正在尝试使用np.where用列中最早的日期替换空值。

数据框如下所示:

index   date
1       2019-06-30 22:40:25.799000+00:00
2       2019-06-30 22:40:25.799000+00:00
3       NaN

我将代码编写为:

mini = df['date'].min()
df['date'] = np.where(df['date'].isnull(), mini, df['date'])

但是结果的日期列为我提供了一个Unix时间戳记,正确填写了NaN:

index       date
1       1552685510470841000
2       1555706405810536000
3       2015-05-07 13:49:51.072000+00:00

为什么会发生这种情况?我该怎么做才是时间戳记?

1 个答案:

答案 0 :(得分:2)

numpy倾向于将数组的元素视为浮点数。看到NaN和Timestamp都可以表示为浮点数,因此将df['date']转换为浮点数。

您可以改用fillna

df['date'].fillna(mini, inplace=True)