@@ -1393,35 +1393,14 @@ def remove_categories(self, removals, inplace=no_default):
1393
1393
new_categories , ordered = self .ordered , rename = False , inplace = inplace
1394
1394
)
1395
1395
1396
- @overload
1397
- def remove_unused_categories (
1398
- self , * , inplace : Literal [False ] | NoDefault = ...
1399
- ) -> Categorical :
1400
- ...
1401
-
1402
- @overload
1403
- def remove_unused_categories (self , * , inplace : Literal [True ]) -> None :
1404
- ...
1405
-
1406
- @deprecate_nonkeyword_arguments (version = None , allowed_args = ["self" ])
1407
- def remove_unused_categories (
1408
- self , inplace : bool | NoDefault = no_default
1409
- ) -> Categorical | None :
1396
+ def remove_unused_categories (self ) -> Categorical :
1410
1397
"""
1411
1398
Remove categories which are not used.
1412
1399
1413
- Parameters
1414
- ----------
1415
- inplace : bool, default False
1416
- Whether or not to drop unused categories inplace or return a copy of
1417
- this categorical with unused categories dropped.
1418
-
1419
- .. deprecated:: 1.2.0
1420
-
1421
1400
Returns
1422
1401
-------
1423
- cat : Categorical or None
1424
- Categorical with unused categories dropped or None if ``inplace=True`` .
1402
+ cat : Categorical
1403
+ Categorical with unused categories dropped.
1425
1404
1426
1405
See Also
1427
1406
--------
@@ -1448,33 +1427,20 @@ def remove_unused_categories(
1448
1427
['a', 'c', 'a', 'c', 'c']
1449
1428
Categories (2, object): ['a', 'c']
1450
1429
"""
1451
- if inplace is not no_default :
1452
- warn (
1453
- "The `inplace` parameter in pandas.Categorical."
1454
- "remove_unused_categories is deprecated and "
1455
- "will be removed in a future version." ,
1456
- FutureWarning ,
1457
- stacklevel = find_stack_level (),
1458
- )
1459
- else :
1460
- inplace = False
1461
-
1462
- inplace = validate_bool_kwarg (inplace , "inplace" )
1463
- cat = self if inplace else self .copy ()
1464
- idx , inv = np .unique (cat ._codes , return_inverse = True )
1430
+ idx , inv = np .unique (self ._codes , return_inverse = True )
1465
1431
1466
1432
if idx .size != 0 and idx [0 ] == - 1 : # na sentinel
1467
1433
idx , inv = idx [1 :], inv - 1
1468
1434
1469
- new_categories = cat .dtype .categories .take (idx )
1435
+ new_categories = self .dtype .categories .take (idx )
1470
1436
new_dtype = CategoricalDtype ._from_fastpath (
1471
1437
new_categories , ordered = self .ordered
1472
1438
)
1473
1439
new_codes = coerce_indexer_dtype (inv , new_dtype .categories )
1440
+
1441
+ cat = self .copy ()
1474
1442
NDArrayBacked .__init__ (cat , new_codes , new_dtype )
1475
- if not inplace :
1476
- return cat
1477
- return None
1443
+ return cat
1478
1444
1479
1445
# ------------------------------------------------------------------
1480
1446
0 commit comments