Oblomov
Oblomov

Reputation: 9635

Problems resampling pandas time series with time gap between indices

I want to resample the pandas series

import pandas as pd
index_1 = pd.date_range('1/1/2000', periods=4, freq='T')
index_2 = pd.date_range('1/2/2000', periods=3, freq='T')
series = pd.Series(range(4), index=index_1)
series=series.append(pd.Series(range(3), index=index_2))
print series
>>>2000-01-01 00:00:00    0
   2000-01-01 00:01:00    1
   2000-01-01 00:02:00    2
   2000-01-01 00:03:00    3
   2000-01-02 00:00:00    0
   2000-01-02 00:01:00    1
   2000-01-02 00:02:00    2

such that the resulting DataSeries only contains every second entry, i.e

  >>>2000-01-01 00:00:00    0
     2000-01-01 00:02:00    2
     2000-01-02 00:00:00    0
     2000-01-02 00:02:00    2

using the (poorly documented) resample method of pandas in the following way:

resampled_series = series.resample('2T', closed='right')
print resampled_series

I get

>>>1999-12-31 23:58:00    0.0
   2000-01-01 00:00:00    1.5
   2000-01-01 00:02:00    3.0
   2000-01-01 00:04:00    NaN
   2000-01-01 00:56:00    NaN
                  ...
   2000-01-01 23:54:00    NaN
   2000-01-01 23:56:00    NaN
   2000-01-01 23:58:00    0.0
   2000-01-02 00:00:00    1.5
   2000-01-02 00:02:00    3.0

Why does it start 2 minutes earlier than the original series? why does it contain all the time steps inbetween, which are not contained in the original series? How can I get my desired result?

Upvotes: 0

Views: 288

Answers (1)

HYRY
HYRY

Reputation: 97301

resample() is not the right function for your purpose.

try this:

series[series.index.minute % 2 == 0]

Upvotes: 1

Related Questions