【问题标题】:Convert seconds to Datetime, without dropping the microsecond precision, using pandas to_datetime使用 pandas to_datetime 将秒转换为日期时间,而不会降低微秒精度
【发布时间】:2017-02-22 19:26:38
【问题描述】:

我正在尝试使用 pandas to_datetime 将包含微秒精度的秒数数组转换为日期时间格式,如下所示:

x = 1487187300.038075
time = pd.to_datetime(x, unit='s')

这成功转换为时间戳,但微秒精度下降(或至少不可见),产生:

Timestamp('2017-02-15 19:35:00')

关于如何在不丢失精度的情况下进行转换的任何建议?到目前为止,我的搜索都没有找到 OP 关心保持微秒精度的示例。

【问题讨论】:

  • 试试print(time.microsecond)
  • 返回零!感谢您的建议!
  • 你用的是什么版本的熊猫? 0.19.2 在我对您的示例的测试中保留了微秒。
  • 看起来我正在运行 0.18.1
  • 不幸的是,在公司批准 Anaconda 4.3 之前我无法升级,但看起来这将带来 pandas 0.19.2。

标签: pandas python-datetime


【解决方案1】:

我想我找到了根本原因和临时解决方法。在 pandas 0.19.1 中修复了一个浮点数被截断的问题。

https://github.com/pandas-dev/pandas/issues/13834

解决方法是使用“errors='coerce'”论证:

x = 1487187300.038075
time = pd.to_datetime(x, unit='s', errors='coerce')

time
Out[43]: 
Timestamp('2017-02-15 19:35:00.038075')

我不知道还有什么可能会受到“错误”论点的影响,但我认为它解决了我的问题。

【讨论】:

    猜你喜欢
    • 2019-04-08
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2013-02-23
    • 2012-09-17
    • 2018-12-02
    • 2015-07-20
    • 2011-05-22
    相关资源
    最近更新 更多