Search Missing Timestamp and display in python?

后端 未结 2 1484
醉话见心
醉话见心 2021-01-20 15:56

Here is my some Dataset which having Time,Temperature1,Temperature2

Timestamp.             Temperature1.        Temperature2
09/01/2016 00:00:08          53.         


        
2条回答
  •  感情败类
    2021-01-20 16:24

    you can use resample('30S', base=8) method:

    In [20]: x.resample('30S', base=8).mean()
    Out[20]:
                                     Temperature1    Temperature2
    Timestamp
    2016-09-01 00:00:08                      53.4            45.5
    2016-09-01 00:00:38                      53.5            45.2
    2016-09-01 00:01:08                      54.6            43.2
    2016-09-01 00:01:38                      55.2            46.3
    2016-09-01 00:02:08                      54.5            45.5
    2016-09-01 00:02:38                       NaN             NaN
    2016-09-01 00:03:08                       NaN             NaN
    2016-09-01 00:03:38                       NaN             NaN
    2016-09-01 00:04:08                      54.2            35.5
    2016-09-01 00:04:38                       NaN             NaN
    2016-09-01 00:05:08                      52.4            45.7
    2016-09-01 00:05:38                      53.4            45.2
    

    The solution above assumes that the Timestamp is of datetime dtype and that it has been set as index. If Timestamp is a regular column (not index), then starting from Pandas 0.19.0 we can resample on regular columns (it must be of datetime dtype), using on='column_name' parameter:

    In [26]: x.resample('30S', on='Timestamp', base=8).mean()
    Out[26]:
                                     Temperature1    Temperature2
    Timestamp
    2016-09-01 00:00:08                      53.4            45.5
    2016-09-01 00:00:38                      53.5            45.2
    2016-09-01 00:01:08                      54.6            43.2
    2016-09-01 00:01:38                      55.2            46.3
    2016-09-01 00:02:08                      54.5            45.5
    2016-09-01 00:02:38                       NaN             NaN
    2016-09-01 00:03:08                       NaN             NaN
    2016-09-01 00:03:38                       NaN             NaN
    2016-09-01 00:04:08                      54.2            35.5
    2016-09-01 00:04:38                       NaN             NaN
    2016-09-01 00:05:08                      52.4            45.7
    2016-09-01 00:05:38                      53.4            45.2
    

    if you need to find your base value dynamically you can do it this way:

    In [21]: x.index[0].second
    Out[21]: 8
    

    from docs:

    base : int, default 0

    For frequencies that evenly subdivide 1 day, the “origin” of the aggregated intervals. For example, for 5min frequency, base could range from 0 through 4.

    Defaults to 0

提交回复
热议问题