【问题标题】:Convert pandas DateOffset to microsecond将熊猫 DateOffset 转换为微秒
【发布时间】:2015-07-10 14:38:25
【问题描述】:

我想检索数据帧的采样频率,例如以微秒为单位的整数或以秒为单位的浮点数。

我发现以下方法可行

import pandas as pd
(pd.datetime(1,1,1) + data_frame.index.freq - pd.datetime(1,1,1)).total_seconds()

但不知何故,我认为可能有一种不那么麻烦的方法……

【问题讨论】:

    标签: python datetime pandas dataframe


    【解决方案1】:

    您可能想使用pd.Timedelta

    import pandas as pd
    import numpy as np
    
    # your dataframe with some unknown freq
    # ====================================
    df = pd.DataFrame(np.random.randn(100), columns=['col'], index=pd.date_range('2015-01-01 00:00:00', periods=100, freq='20ms'))
    
    Out[263]: 
                                col
    2015-01-01 00:00:00.000  0.8647
    2015-01-01 00:00:00.020 -0.2269
    2015-01-01 00:00:00.040  0.8112
    2015-01-01 00:00:00.060  0.2878
    2015-01-01 00:00:00.080 -0.5385
    2015-01-01 00:00:00.100  1.9085
    2015-01-01 00:00:00.120 -0.4758
    2015-01-01 00:00:00.140  1.4407
    2015-01-01 00:00:00.160 -1.1491
    2015-01-01 00:00:00.180  0.8057
    ...                         ...
    2015-01-01 00:00:01.800 -0.6615
    2015-01-01 00:00:01.820  0.7059
    2015-01-01 00:00:01.840 -0.3586
    2015-01-01 00:00:01.860  0.7320
    2015-01-01 00:00:01.880 -0.0364
    2015-01-01 00:00:01.900  0.5889
    2015-01-01 00:00:01.920 -0.7796
    2015-01-01 00:00:01.940  0.4763
    2015-01-01 00:00:01.960  0.8339
    2015-01-01 00:00:01.980  1.3138
    
    [100 rows x 1 columns]
    
    
    # processing using pd.Timedelta()
    # =================================
    # get the freq in ms
    (df.index[1] - df.index[0])/pd.Timedelta('1ms')
    
    Out[262]: 20.0
    

    【讨论】:

      猜你喜欢
      • 2015-02-06
      • 2011-09-20
      • 2017-11-10
      • 1970-01-01
      • 2013-12-26
      • 1970-01-01
      • 2021-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多