Average time for datetime list

前端 未结 4 2132
春和景丽
春和景丽 2020-12-10 05:13

Looking for fastest solution of time averaging problem.

I\'ve got a list of datetime objects. Need to find average value of time (excluding year, month, day). Here i

4条回答
  •  不思量自难忘°
    2020-12-10 05:29

    Here's a better way to approach this problem

    Generate a sample of datetimes

    In [28]: i = date_range('20130101',periods=20000000,freq='s')
    
    In [29]: i
    Out[29]: 
    
    [2013-01-01 00:00:00, ..., 2013-08-20 11:33:19]
    Length: 20000000, Freq: S, Timezone: None
    

    avg 20m times

    In [30]: %timeit pd.to_timedelta(int((i.hour*3600+i.minute*60+i.second).mean()),unit='s')
    1 loops, best of 3: 2.87 s per loop
    

    The result as a timedelta (note that this requires numpy 1.7 and pandas 0.13 for the to_timedelta part, coming very soon)

    In [31]: pd.to_timedelta(int((i.hour*3600+i.minute*60+i.second).mean()),unit='s')
    Out[31]: 
    0   11:59:12
    dtype: timedelta64[ns]
    

    In seconds (this will work for pandas 0.12, numpy >= 1.6).

    In [32]: int((i.hour*3600+i.minute*60+i.second).mean())
    Out[32]: 43152
    

提交回复
热议问题