Skip to content

Commit 628bfac

Browse files
committed
BUG-24241 make requested changes
1 parent d765dc3 commit 628bfac

File tree

2 files changed

+25
-18
lines changed

2 files changed

+25
-18
lines changed

pandas/core/arrays/categorical.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1231,7 +1231,7 @@ def map(self, mapper):
12311231
new_categories = self.categories.map(mapper)
12321232

12331233
try:
1234-
if isinstance(mapper, (dict, ABCSeries)):
1234+
if is_dict_like(mapper):
12351235
new_value = mapper[np.nan]
12361236
else:
12371237
new_value = mapper(np.nan)

pandas/tests/indexes/test_category.py

+24-17
Original file line numberDiff line numberDiff line change
@@ -311,14 +311,18 @@ def test_map_with_categorical_series(self):
311311
exp = pd.Index(["odd", "even", "odd", np.nan])
312312
tm.assert_index_equal(a.map(c), exp)
313313

314-
@pytest.mark.parametrize('data, f', [[[1, 1, np.nan], pd.isna],
315-
[[1, 2, np.nan], pd.isna],
316-
[[1, 1, np.nan], {1: False,
317-
np.nan: True}],
318-
[[1, 2, np.nan], {1: False,
319-
2: False,
320-
np.nan: True}]])
321-
def test_map_fill_nan(self, data, f):
314+
@pytest.mark.parametrize(
315+
(
316+
'data',
317+
'f'
318+
),
319+
(
320+
([1, 1, np.nan], pd.isna),
321+
([1, 2, np.nan], pd.isna),
322+
([1, 1, np.nan], {1: False, np.nan: True}),
323+
([1, 2, np.nan], {1: False, 2: False, np.nan: True})
324+
))
325+
def test_map_fill_nan(self, data, f): # GH 24241
322326
values = pd.Categorical(data)
323327
result = values.map(f)
324328
if data[1] == 1:
@@ -328,15 +332,18 @@ def test_map_fill_nan(self, data, f):
328332
expected = pd.Index([False, False, True])
329333
tm.assert_index_equal(result, expected)
330334

331-
@pytest.mark.parametrize('data, f', [[[1, 1, np.nan], {1: False}],
332-
[[1, 2, np.nan], {1: False,
333-
2: False}],
334-
[[1, 1, np.nan], pd.Series([False,
335-
False])],
336-
[[1, 2, np.nan], pd.Series([False,
337-
False,
338-
False])]])
339-
def test_map_dont_fill_nan(self, data, f):
335+
@pytest.mark.parametrize(
336+
(
337+
'data',
338+
'f'
339+
),
340+
(
341+
([1, 1, np.nan], {1: False}),
342+
([1, 2, np.nan], {1: False, 2: False}),
343+
([1, 1, np.nan], pd.Series([False, False])),
344+
([1, 2, np.nan], pd.Series([False, False, False]))
345+
))
346+
def test_map_dont_fill_nan(self, data, f): # GH 24241
340347
values = pd.Categorical(data)
341348
result = values.map(f)
342349
expected = pd.Index([False, False, np.nan])

0 commit comments

Comments
 (0)