【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 2022-01-02
        • 1970-01-01
        • 1970-01-01
        • 2021-04-22
        • 2022-10-13
        • 1970-01-01
        • 2013-07-26
        • 1970-01-01
        • 2016-04-12
        相关资源
        最近更新 更多