Skip to content

Commit 80f02d3

Browse files
author
Oleh Kozynets
committed
Code review changes.
1 parent 746852e commit 80f02d3

File tree

3 files changed

+16
-6
lines changed

3 files changed

+16
-6
lines changed

pandas/core/arrays/categorical.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -1062,7 +1062,7 @@ def remove_unused_categories(self, inplace=no_default):
10621062
Returns
10631063
-------
10641064
cat : Categorical or None
1065-
Categorical with unused categories dropped.
1065+
Categorical with unused categories dropped or None if ``inplace=True``.
10661066
10671067
See Also
10681068
--------
@@ -1079,8 +1079,11 @@ def remove_unused_categories(self, inplace=no_default):
10791079
FutureWarning,
10801080
stacklevel=2,
10811081
)
1082+
else:
1083+
inplace = False
10821084

1083-
cat = self.copy()
1085+
inplace = validate_bool_kwarg(inplace, "inplace")
1086+
cat = self if inplace else self.copy()
10841087
idx, inv = np.unique(cat._codes, return_inverse=True)
10851088

10861089
if idx.size != 0 and idx[0] == -1: # na sentinel
@@ -1093,7 +1096,8 @@ def remove_unused_categories(self, inplace=no_default):
10931096
cat._dtype = new_dtype
10941097
cat._codes = coerce_indexer_dtype(inv, new_dtype.categories)
10951098

1096-
return cat
1099+
if not inplace:
1100+
return cat
10971101

10981102
# ------------------------------------------------------------------
10991103

pandas/tests/arrays/categorical/test_analytics.py

+4-2
Original file line numberDiff line numberDiff line change
@@ -354,8 +354,10 @@ def test_validate_inplace_raises(self, value):
354354
with pytest.raises(ValueError, match=msg):
355355
cat.remove_categories(removals=["D", "E", "F"], inplace=value)
356356

357-
with tm.assert_produces_warning(FutureWarning):
358-
cat.remove_unused_categories(inplace=value)
357+
with pytest.raises(ValueError, match=msg):
358+
with tm.assert_produces_warning(FutureWarning):
359+
# issue #37643 inplace kwarg deprecated
360+
cat.remove_unused_categories(inplace=value)
359361

360362
with pytest.raises(ValueError, match=msg):
361363
cat.sort_values(inplace=value)

pandas/tests/arrays/categorical/test_api.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -372,7 +372,11 @@ def test_remove_unused_categories(self):
372372
tm.assert_index_equal(c.categories, exp_categories_all)
373373

374374
with tm.assert_produces_warning(FutureWarning):
375-
c.remove_unused_categories(inplace=True)
375+
# issue #37643 inplace kwarg deprecated
376+
res = c.remove_unused_categories(inplace=True)
377+
378+
tm.assert_index_equal(c.categories, exp_categories_dropped)
379+
assert res is None
376380

377381
# with NaN values (GH11599)
378382
c = Categorical(["a", "b", "c", np.nan], categories=["a", "b", "c", "d", "e"])

0 commit comments

Comments
 (0)