pandas.DataFrame.between_time#

DataFrame.between_time(start_time, end_time, inclusive='both', axis=None)[source] #

Select values between particular times of the day (e.g., 9:00-9:30 AM).

By setting start_time to be later than end_time, you can get the times that are not between the two times.

Parameters:
start_timedatetime.time or str

Initial time as a time filter limit.

end_timedatetime.time or str

End time as a time filter limit.

inclusive{"both", "neither", "left", "right"}, default "both"

Include boundaries; whether to set each bound as closed or open.

axis{0 or ‘index’, 1 or ‘columns’}, default 0

Determine range time on index or columns value. For Series this parameter is unused and defaults to 0.

Returns:
Series or DataFrame

Data from the original object filtered to the specified dates range.

Raises:
TypeError

If the index is not a DatetimeIndex

See also

at_time

Select values at a particular time of the day.

first

Select initial periods of time series based on a date offset.

last

Select final periods of time series based on a date offset.

DatetimeIndex.indexer_between_time

Get just the index locations for values between particular times of the day.

Examples

>>> i = pd.date_range('2018年04月09日', periods=4, freq='1D20min')
>>> ts = pd.DataFrame({'A': [1, 2, 3, 4]}, index=i)
>>> ts
 A
2018年04月09日 00:00:00 1
2018年04月10日 00:20:00 2
2018年04月11日 00:40:00 3
2018年04月12日 01:00:00 4
>>> ts.between_time('0:15', '0:45')
 A
2018年04月10日 00:20:00 2
2018年04月11日 00:40:00 3

You get the times that are not between two times by setting start_time later than end_time:

>>> ts.between_time('0:45', '0:15')
 A
2018年04月09日 00:00:00 1
2018年04月12日 01:00:00 4