Skip to content

Commit d78d02d

Browse files
DeaMariaLeontopper-123
authored andcommitted
DOC: Fixing EX01 - Added examples (pandas-dev#53292)
* Added examples for Interval and IntervalArray * changed code_checks.sh * forgot these
1 parent 022213c commit d78d02d

File tree

3 files changed

+132
-12
lines changed

3 files changed

+132
-12
lines changed

ci/code_checks.sh

-12
Original file line numberDiff line numberDiff line change
@@ -172,16 +172,6 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
172172
pandas.Period.asfreq \
173173
pandas.Period.now \
174174
pandas.arrays.PeriodArray \
175-
pandas.Interval.closed \
176-
pandas.Interval.left \
177-
pandas.Interval.length \
178-
pandas.Interval.right \
179-
pandas.arrays.IntervalArray.left \
180-
pandas.arrays.IntervalArray.right \
181-
pandas.arrays.IntervalArray.closed \
182-
pandas.arrays.IntervalArray.mid \
183-
pandas.arrays.IntervalArray.length \
184-
pandas.arrays.IntervalArray.is_non_overlapping_monotonic \
185175
pandas.arrays.IntervalArray.from_arrays \
186176
pandas.arrays.IntervalArray.to_tuples \
187177
pandas.Int8Dtype \
@@ -310,9 +300,7 @@ if [[ -z "$CHECK" || "$CHECK" == "docstrings" ]]; then
310300
pandas.CategoricalIndex.as_ordered \
311301
pandas.CategoricalIndex.as_unordered \
312302
pandas.CategoricalIndex.equals \
313-
pandas.IntervalIndex.closed \
314303
pandas.IntervalIndex.values \
315-
pandas.IntervalIndex.is_non_overlapping_monotonic \
316304
pandas.IntervalIndex.to_tuples \
317305
pandas.MultiIndex.dtypes \
318306
pandas.MultiIndex.drop \

pandas/_libs/interval.pyx

+32
Original file line numberDiff line numberDiff line change
@@ -188,6 +188,14 @@ cdef class IntervalMixin:
188188
See Also
189189
--------
190190
Interval.is_empty : Indicates if an interval contains no points.
191+
192+
Examples
193+
--------
194+
>>> interval = pd.Interval(left=1, right=2, closed='left')
195+
>>> interval
196+
Interval(1, 2, closed='left')
197+
>>> interval.length
198+
1
191199
"""
192200
return self.right - self.left
193201

@@ -369,18 +377,42 @@ cdef class Interval(IntervalMixin):
369377
cdef readonly object left
370378
"""
371379
Left bound for the interval.
380+
381+
Examples
382+
--------
383+
>>> interval = pd.Interval(left=1, right=2, closed='left')
384+
>>> interval
385+
Interval(1, 2, closed='left')
386+
>>> interval.left
387+
1
372388
"""
373389

374390
cdef readonly object right
375391
"""
376392
Right bound for the interval.
393+
394+
Examples
395+
--------
396+
>>> interval = pd.Interval(left=1, right=2, closed='left')
397+
>>> interval
398+
Interval(1, 2, closed='left')
399+
>>> interval.right
400+
2
377401
"""
378402

379403
cdef readonly str closed
380404
"""
381405
String describing the inclusive side the intervals.
382406
383407
Either ``left``, ``right``, ``both`` or ``neither``.
408+
409+
Examples
410+
--------
411+
>>> interval = pd.Interval(left=1, right=2, closed='left')
412+
>>> interval
413+
Interval(1, 2, closed='left')
414+
>>> interval.closed
415+
'left'
384416
"""
385417

386418
def __init__(self, left, right, str closed="right"):

pandas/core/arrays/interval.py

+100
Original file line numberDiff line numberDiff line change
@@ -1266,6 +1266,17 @@ def _format_space(self) -> str:
12661266
def left(self):
12671267
"""
12681268
Return the left endpoints of each Interval in the IntervalArray as an Index.
1269+
1270+
Examples
1271+
--------
1272+
1273+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(2, 5)])
1274+
>>> interv_arr
1275+
<IntervalArray>
1276+
[(0, 1], (2, 5]]
1277+
Length: 2, dtype: interval[int64, right]
1278+
>>> interv_arr.left
1279+
Index([0, 2], dtype='int64')
12691280
"""
12701281
from pandas import Index
12711282

@@ -1275,6 +1286,17 @@ def left(self):
12751286
def right(self):
12761287
"""
12771288
Return the right endpoints of each Interval in the IntervalArray as an Index.
1289+
1290+
Examples
1291+
--------
1292+
1293+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(2, 5)])
1294+
>>> interv_arr
1295+
<IntervalArray>
1296+
[(0, 1], (2, 5]]
1297+
Length: 2, dtype: interval[int64, right]
1298+
>>> interv_arr.right
1299+
Index([1, 5], dtype='int64')
12781300
"""
12791301
from pandas import Index
12801302

@@ -1284,13 +1306,35 @@ def right(self):
12841306
def length(self) -> Index:
12851307
"""
12861308
Return an Index with entries denoting the length of each Interval.
1309+
1310+
Examples
1311+
--------
1312+
1313+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(1, 5)])
1314+
>>> interv_arr
1315+
<IntervalArray>
1316+
[(0, 1], (1, 5]]
1317+
Length: 2, dtype: interval[int64, right]
1318+
>>> interv_arr.length
1319+
Index([1, 4], dtype='int64')
12871320
"""
12881321
return self.right - self.left
12891322

12901323
@property
12911324
def mid(self) -> Index:
12921325
"""
12931326
Return the midpoint of each Interval in the IntervalArray as an Index.
1327+
1328+
Examples
1329+
--------
1330+
1331+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(1, 5)])
1332+
>>> interv_arr
1333+
<IntervalArray>
1334+
[(0, 1], (1, 5]]
1335+
Length: 2, dtype: interval[int64, right]
1336+
>>> interv_arr.mid
1337+
Index([0.5, 3.0], dtype='float64')
12941338
"""
12951339
try:
12961340
return 0.5 * (self.left + self.right)
@@ -1378,6 +1422,27 @@ def closed(self) -> IntervalClosedType:
13781422
String describing the inclusive side the intervals.
13791423
13801424
Either ``left``, ``right``, ``both`` or ``neither``.
1425+
1426+
Examples
1427+
--------
1428+
1429+
For arrays:
1430+
1431+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(1, 5)])
1432+
>>> interv_arr
1433+
<IntervalArray>
1434+
[(0, 1], (1, 5]]
1435+
Length: 2, dtype: interval[int64, right]
1436+
>>> interv_arr.closed
1437+
'right'
1438+
1439+
For Interval Index:
1440+
1441+
>>> interv_idx = pd.interval_range(start=0, end=2)
1442+
>>> interv_idx
1443+
IntervalIndex([(0, 1], (1, 2]], dtype='interval[int64, right]')
1444+
>>> interv_idx.closed
1445+
'right'
13811446
"""
13821447
return self.dtype.closed
13831448

@@ -1436,6 +1501,41 @@ def set_closed(self, closed: IntervalClosedType) -> Self:
14361501
14371502
Non-overlapping means (no Intervals share points), and monotonic means
14381503
either monotonic increasing or monotonic decreasing.
1504+
1505+
Examples
1506+
--------
1507+
For arrays:
1508+
1509+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1), pd.Interval(1, 5)])
1510+
>>> interv_arr
1511+
<IntervalArray>
1512+
[(0, 1], (1, 5]]
1513+
Length: 2, dtype: interval[int64, right]
1514+
>>> interv_arr.is_non_overlapping_monotonic
1515+
True
1516+
1517+
>>> interv_arr = pd.arrays.IntervalArray([pd.Interval(0, 1),
1518+
... pd.Interval(-1, 0.1)])
1519+
>>> interv_arr
1520+
<IntervalArray>
1521+
[(0.0, 1.0], (-1.0, 0.1]]
1522+
Length: 2, dtype: interval[float64, right]
1523+
>>> interv_arr.is_non_overlapping_monotonic
1524+
False
1525+
1526+
For Interval Index:
1527+
1528+
>>> interv_idx = pd.interval_range(start=0, end=2)
1529+
>>> interv_idx
1530+
IntervalIndex([(0, 1], (1, 2]], dtype='interval[int64, right]')
1531+
>>> interv_idx.is_non_overlapping_monotonic
1532+
True
1533+
1534+
>>> interv_idx = pd.interval_range(start=0, end=2, closed='both')
1535+
>>> interv_idx
1536+
IntervalIndex([[0, 1], [1, 2]], dtype='interval[int64, both]')
1537+
>>> interv_idx.is_non_overlapping_monotonic
1538+
False
14391539
"""
14401540

14411541
@property

0 commit comments

Comments
 (0)