Converting irregularly time stamped measurements into equally spaced, time-weighted averages

后端 未结 3 2062
悲哀的现实
悲哀的现实 2020-12-30 03:45

I have series of measurements which are time stamped and irregularly spaced. Values in these series always represent changes of the measurement -- i.e. without a change no n

3条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-30 04:26

    You can do this with traces.

    from datetime import datetime
    import traces
    
    ts = traces.TimeSeries(data=[
        (datetime(2016, 9, 27, 23, 0, 0, 100000), 10),
        (datetime(2016, 9, 27, 23, 0, 1, 200000), 8),
        (datetime(2016, 9, 27, 23, 0, 1, 600000), 0),
        (datetime(2016, 9, 27, 23, 0, 6, 300000), 4),
    ])
    
    regularized = ts.moving_average(
        start=datetime(2016, 9, 27, 23, 0, 1),
        sampling_period=1,
        placement='left',
    )
    

    Which results in :

    [(datetime(2016, 9, 27, 23, 0, 1), 5.2),
     (datetime(2016, 9, 27, 23, 0, 2), 0.0),
     (datetime(2016, 9, 27, 23, 0, 3), 0.0),
     (datetime(2016, 9, 27, 23, 0, 4), 0.0),
     (datetime(2016, 9, 27, 23, 0, 5), 0.0),
     (datetime(2016, 9, 27, 23, 0, 6), 2.8)]
    

提交回复
热议问题