使用 pandas to_datetime 将秒转换为日期时间,而不降低微秒精度

Cra*_*don 5 python-datetime pandas

我正在尝试使用 pandas to_datetime 将自纪元以来的秒数值(包括微秒精度)数组转换为日期时间格式,如下所示:

x = 1487187300.038075
time = pd.to_datetime(x, unit='s')
Run Code Online (Sandbox Code Playgroud)

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

Timestamp('2017-02-15 19:35:00')
Run Code Online (Sandbox Code Playgroud)

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

Cra*_*don 4

我想我已经找到了根本原因和临时解决方法。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')
Run Code Online (Sandbox Code Playgroud)

我不知道“错误”参数可能会影响什么,但我认为它解决了我的问题。