def between_time(self, start_time, end_time, include_start=True, include_end=True, axis=None):
    "\n        Select values between particular times of the day (e.g., 9:00-9:30 AM).\n\n        By setting ``start_time`` to be later than ``end_time``,\n        you can get the times that are *not* between the two times.\n\n        Parameters\n        ----------\n        start_time : datetime.time or str\n        end_time : datetime.time or str\n        include_start : bool, default True\n        include_end : bool, default True\n        axis : {0 or 'index', 1 or 'columns'}, default 0\n\n            .. versionadded:: 0.24.0\n\n        Returns\n        -------\n        Series or DataFrame\n\n        Raises\n        ------\n        TypeError\n            If the index is not  a :class:`DatetimeIndex`\n\n        See Also\n        --------\n        at_time : Select values at a particular time of the day.\n        first : Select initial periods of time series based on a date offset.\n        last : Select final periods of time series based on a date offset.\n        DatetimeIndex.indexer_between_time : Get just the index locations for\n            values between particular times of the day.\n\n        Examples\n        --------\n        >>> i = pd.date_range('2018-04-09', periods=4, freq='1D20min')\n        >>> ts = pd.DataFrame({'A': [1, 2, 3, 4]}, index=i)\n        >>> ts\n                             A\n        2018-04-09 00:00:00  1\n        2018-04-10 00:20:00  2\n        2018-04-11 00:40:00  3\n        2018-04-12 01:00:00  4\n\n        >>> ts.between_time('0:15', '0:45')\n                             A\n        2018-04-10 00:20:00  2\n        2018-04-11 00:40:00  3\n\n        You get the times that are *not* between two times by setting\n        ``start_time`` later than ``end_time``:\n\n        >>> ts.between_time('0:45', '0:15')\n                             A\n        2018-04-09 00:00:00  1\n        2018-04-12 01:00:00  4\n        "
    if (axis is None):
        axis = self._stat_axis_number
    axis = self._get_axis_number(axis)
    index = self._get_axis(axis)
    try:
        indexer = index.indexer_between_time(start_time, end_time, include_start=include_start, include_end=include_end)
    except AttributeError:
        raise TypeError('Index must be DatetimeIndex')
    return self._take(indexer, axis=axis)
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_time : datetime.time or str
end_time : datetime.time or str
include_start : bool, default True
include_end : bool, default True
axis : {0 or 'index', 1 or 'columns'}, default 0

    .. versionadded:: 0.24.0

Returns
-------
Series or DataFrame

Raises
------
TypeError
    If the index is not  a :class:`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
def between_time(self, start_time, end_time, include_start=True, include_end=True, axis=None):
    "\n        Select values between particular times of the day (e.g., 9:00-9:30 AM).\n\n        By setting ``start_time`` to be later than ``end_time``,\n        you can get the times that are *not* between the two times.\n\n        Parameters\n        ----------\n        start_time : datetime.time or str\n        end_time : datetime.time or str\n        include_start : bool, default True\n        include_end : bool, default True\n        axis : {0 or 'index', 1 or 'columns'}, default 0\n\n            .. versionadded:: 0.24.0\n\n        Returns\n        -------\n        Series or DataFrame\n\n        Raises\n        ------\n        TypeError\n            If the index is not  a :class:`DatetimeIndex`\n\n        See Also\n        --------\n        at_time : Select values at a particular time of the day.\n        first : Select initial periods of time series based on a date offset.\n        last : Select final periods of time series based on a date offset.\n        DatetimeIndex.indexer_between_time : Get just the index locations for\n            values between particular times of the day.\n\n        Examples\n        --------\n        >>> i = pd.date_range('2018-04-09', periods=4, freq='1D20min')\n        >>> ts = pd.DataFrame({'A': [1, 2, 3, 4]}, index=i)\n        >>> ts\n                             A\n        2018-04-09 00:00:00  1\n        2018-04-10 00:20:00  2\n        2018-04-11 00:40:00  3\n        2018-04-12 01:00:00  4\n\n        >>> ts.between_time('0:15', '0:45')\n                             A\n        2018-04-10 00:20:00  2\n        2018-04-11 00:40:00  3\n\n        You get the times that are *not* between two times by setting\n        ``start_time`` later than ``end_time``:\n\n        >>> ts.between_time('0:45', '0:15')\n                             A\n        2018-04-09 00:00:00  1\n        2018-04-12 01:00:00  4\n        "
    if (axis is None):
        axis = self._stat_axis_number
    axis = self._get_axis_number(axis)
    index = self._get_axis(axis)
    try:
        indexer = index.indexer_between_time(start_time, end_time, include_start=include_start, include_end=include_end)
    except AttributeError:
        raise TypeError('Index must be DatetimeIndex')
    return self._take(indexer, axis=axis)