我有一个数据框,其中有一列包含带有一些空值的时间戳数据。我正在尝试使用 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
为什么会发生这种情况以及如何使其全部成为时间戳?
最佳答案
numpy 倾向于将数组的元素视为 float 。它看到 NaN 和 Timestamp 都可以表示为 float ,因此它转换 df['date']
漂浮。
您可以使用fillna
相反:
df['date'].fillna(mini, inplace=True)
关于python - np.where 与日期时间产生 Unix 时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59377797/