python - np.where 与日期时间产生 Unix 时间戳

标签 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

为什么会发生这种情况以及如何使其全部成为时间戳?

最佳答案

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/

相关文章:

python - 如何确保将数据保存到 csv 时保留逗号?

php - 树莓派数据库服务器

python - 如何将自定义字段添加到 InlineFormsets?

pandas - 如何自定义DataFrame显示的标题和列宽?

python - 用数据框计算出现次数?

python - 如何在plotly3(不是plotly4)中并排绘制表格和散点图

python - mysql-connector-python-2.0.2-py3.3.msi 安装失败

python - 在 Windows 中将 Python Web 服务器作为服务运行

pandas - 将值插入随机行

python - LightGBM 是否根据名称或 cat_code 值处理 Pandas 分类?