自Epoch以来如何将Pandas Timestamp转换为nano?

Posted

技术标签:

【中文标题】自Epoch以来如何将Pandas Timestamp转换为nano?【英文标题】:How to convert Pandas Timestamp into nano since Epoch? 【发布时间】:2016-12-18 08:05:34 【问题描述】:

自 Epoch 以来将 Pandas Timestamp 转换为 nano 的最有效方法是什么?

import pandas as pd
ns = 1470924597871000000   
timestamp = pd.to_datetime(ns, unit="ns")

那么怎么做

timestamp => 1470924597871000000  ns???

【问题讨论】:

【参考方案1】:

通过unit='ns'指定单元类型:

In [46]:
ns = 1470924597871000000   
timestamp = pd.to_datetime(ns, unit='ns')
timestamp

Out[46]:
Timestamp('2016-08-11 14:09:57.871000')

但是除非你追求别的东西,否则这似乎可以正常工作而不通过这个?

可以使用timestamp()获取时间戳值:

In [50]:
timestamp.timestamp()

Out[50]:
1470920997.871

【讨论】:

【参考方案2】:

对我来说,使用参数unit 效果很好,但令人惊讶的是没有参数:

import pandas as pd
ns = 1470924597871000000  

timestamp1 = pd.to_datetime(ns)
print (timestamp1)
2016-08-11 14:09:57.871000

timestamp = pd.to_datetime(ns, unit='ns')
print (timestamp)
2016-08-11 14:09:57.871000

如果需要从时间戳转换为纪元:

print (timestamp.value)
1470924597871000000

【讨论】:

谢谢!!只是找不到值的文档【参考方案3】:

你可以通过它的值来访问它:

import pandas as pd
ns = 1470924597871000000   
timestamp = pd.to_datetime(ns)
timestamp.value
Out: 1470924597871000000

【讨论】:

以上是关于自Epoch以来如何将Pandas Timestamp转换为nano?的主要内容,如果未能解决你的问题,请参考以下文章

powershell 获取自Epoch以来的秒数

XQuery 中是不是有任何方法可以获取自某个 Epoch 以来的当前时间(以毫秒为单位)?

获取自 Linux 上的 Epoch、Bash 以来的当前时间(以秒为单位)

如何计算自特定列中发生事件以来经过的时间 - Pandas DataFrames

自Javascript中的unix时代以来,如何以毫秒为单位获取时间? [复制]

熊猫:自某个日期以来经过的天数