ren
ren

Reputation: 115

pandas timeseries between_datetime function?

I have been using the between_time method of TimeSeries in pandas, which returns all values between the specified times, regardless of their date.

But I need to select both date and time, because my timeseries structure contains multiple dates.

One way of solving this, though quite inflexible, is just iterate over the values and remove those which are not relevant.

Is there a more elegant way of doing this ?

Upvotes: 4

Views: 2739

Answers (1)

Matti John
Matti John

Reputation: 20477

You can select the dates that are of interest first, and then use between_time. For example, suppose you have a time series of 72 hours:

import pandas as pd
from numpy.random import randn

rng = pd.date_range('1/1/2013', periods=72, freq='H')
ts = pd.Series(randn(len(rng)), index=rng)

To select the between 20:00 & 22:00 on the 2nd and 3rd of January you can simply do:

ts['2013-01-02':'2013-01-03'].between_time('20:00', '22:00')

Giving you something like this:

2013-01-02 20:00:00    0.144399
2013-01-02 21:00:00    0.886806
2013-01-02 22:00:00    0.126844
2013-01-03 20:00:00   -0.464741
2013-01-03 21:00:00    1.856746
2013-01-03 22:00:00   -0.286726

Upvotes: 6

Related Questions