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

How to convert Pandas Timestamp into nano since Epoch?

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

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

那怎么办

timestamp => 1470924597871000000  ns???

通过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

对我来说,它在参数 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

您可以通过它的值访问它:

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