@@ -1266,6 +1266,17 @@ def _format_space(self) -> str:
1266
1266
def left (self ):
1267
1267
"""
1268
1268
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')
1269
1280
"""
1270
1281
from pandas import Index
1271
1282
@@ -1275,6 +1286,17 @@ def left(self):
1275
1286
def right (self ):
1276
1287
"""
1277
1288
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')
1278
1300
"""
1279
1301
from pandas import Index
1280
1302
@@ -1284,13 +1306,35 @@ def right(self):
1284
1306
def length (self ) -> Index :
1285
1307
"""
1286
1308
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')
1287
1320
"""
1288
1321
return self .right - self .left
1289
1322
1290
1323
@property
1291
1324
def mid (self ) -> Index :
1292
1325
"""
1293
1326
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')
1294
1338
"""
1295
1339
try :
1296
1340
return 0.5 * (self .left + self .right )
@@ -1378,6 +1422,27 @@ def closed(self) -> IntervalClosedType:
1378
1422
String describing the inclusive side the intervals.
1379
1423
1380
1424
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'
1381
1446
"""
1382
1447
return self .dtype .closed
1383
1448
@@ -1436,6 +1501,41 @@ def set_closed(self, closed: IntervalClosedType) -> Self:
1436
1501
1437
1502
Non-overlapping means (no Intervals share points), and monotonic means
1438
1503
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
1439
1539
"""
1440
1540
1441
1541
@property
0 commit comments