diff --git a/doc/source/api/indexing.rst b/doc/source/api/indexing.rst index b324bb4854f38..d27b05322c1f2 100644 --- a/doc/source/api/indexing.rst +++ b/doc/source/api/indexing.rst @@ -258,6 +258,7 @@ IntervalIndex Components IntervalIndex.get_indexer IntervalIndex.set_closed IntervalIndex.overlaps + IntervalIndex.to_tuples .. _api.multiindex: diff --git a/pandas/core/arrays/interval.py b/pandas/core/arrays/interval.py index 2e7216108a23e..45470e03c041a 100644 --- a/pandas/core/arrays/interval.py +++ b/pandas/core/arrays/interval.py @@ -71,7 +71,6 @@ closed mid length -values is_non_overlapping_monotonic %(extra_attributes)s\ @@ -936,13 +935,16 @@ def mid(self): # datetime safe version return self.left + 0.5 * self.length - @property - def is_non_overlapping_monotonic(self): - """ - Return True if the IntervalArray is non-overlapping (no Intervals share + _interval_shared_docs['is_non_overlapping_monotonic'] = """ + Return True if the %(klass)s is non-overlapping (no Intervals share points) and is either monotonic increasing or monotonic decreasing, else False """ + + @property + @Appender(_interval_shared_docs['is_non_overlapping_monotonic'] + % _shared_docs_kwargs) + def is_non_overlapping_monotonic(self): # must be increasing (e.g., [0, 1), [1, 2), [2, 3), ... ) # or decreasing (e.g., [-1, 0), [-2, -1), [-3, -2), ...) # we already require left <= right @@ -986,7 +988,7 @@ def __array__(self, dtype=None): Returns NA as a tuple if True, ``(nan, nan)``, or just as the NA value itself if False, ``nan``. - ..versionadded:: 0.23.0 + .. versionadded:: 0.23.0 Returns ------- diff --git a/pandas/core/indexes/interval.py b/pandas/core/indexes/interval.py index c2aca197c55f6..f4c37413260b5 100644 --- a/pandas/core/indexes/interval.py +++ b/pandas/core/indexes/interval.py @@ -102,7 +102,7 @@ def _new_IntervalIndex(cls, d): summary="Immutable index of intervals that are closed on the same side.", name=_index_doc_kwargs['name'], versionadded="0.20.0", - extra_attributes="is_overlapping\n", + extra_attributes="is_overlapping\nvalues\n", extra_methods="contains\n", examples=textwrap.dedent("""\ Examples @@ -465,6 +465,8 @@ def is_unique(self): return self._multiindex.is_unique @cache_readonly + @Appender(_interval_shared_docs['is_non_overlapping_monotonic'] + % _index_doc_kwargs) def is_non_overlapping_monotonic(self): return self._data.is_non_overlapping_monotonic