【问题标题】:How to convert Pandas Timestamp into nano since Epoch?自Epoch以来如何将Pandas Timestamp转换为nano?
【发布时间】: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???
【问题讨论】:
标签:
python-3.x
datetime
pandas
epoch
【解决方案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