Skip to content

Commit 081ac6b

Browse files
committed
rebased
1 parent f85f7d9 commit 081ac6b

File tree

3 files changed

+16
-23
lines changed

3 files changed

+16
-23
lines changed

pandas/core/arrays/categorical.py

+6-5
Original file line numberDiff line numberDiff line change
@@ -1377,13 +1377,14 @@ def memory_usage(self, deep=False):
13771377
@Appender(_shared_docs['searchsorted'])
13781378
def searchsorted(self, value, side='left', sorter=None):
13791379
from pandas.core.series import Series
1380-
codes = _get_codes_for_values(Series(value).values, self.categories)
1381-
if -1 in codes:
1380+
value_codes = _get_codes_for_values(Series(value).values,
1381+
self.categories)
1382+
if -1 in value_codes:
13821383
raise KeyError("Value(s) to be inserted must be in categories.")
1384+
value_codes = value_codes[0] if is_scalar(value) else value_codes
13831385

1384-
codes = codes[0] if is_scalar(value) else codes
1385-
1386-
return self.codes.searchsorted(codes, side=side, sorter=sorter)
1386+
return algorithms.searchsorted(self._codes, value_codes,
1387+
side=side, sorter=sorter)
13871388

13881389
def isna(self):
13891390
"""

pandas/core/base.py

-3
Original file line numberDiff line numberDiff line change
@@ -1473,9 +1473,6 @@ def factorize(self, sort=False, na_sentinel=-1):
14731473
wrong locations will likely be returned. Pandas does *not*
14741474
check this for you.
14751475
1476-
You can check sortedness by calling
1477-
:meth:`%(klass)s.is_monotonic_increasing`.
1478-
14791476
Parameters
14801477
----------
14811478
value : array_like

pandas/tests/arrays/categorical/test_analytics.py

+10-15
Original file line numberDiff line numberDiff line change
@@ -76,35 +76,30 @@ def test_searchsorted(self, ordered):
7676
# https://github.com/pandas-dev/pandas/issues/8420
7777
# https://github.com/pandas-dev/pandas/issues/14522
7878

79-
c = Categorical(['cheese', 'milk', 'apple', 'bread', 'bread'],
80-
categories=['cheese', 'milk', 'apple', 'bread'],
81-
ordered=ordered)
82-
s = Series(c)
79+
cat = Categorical(['cheese', 'milk', 'apple', 'bread', 'bread'],
80+
categories=['cheese', 'milk', 'apple', 'bread'],
81+
ordered=ordered)
82+
ser = Series(cat)
8383

8484
# Searching for single item argument, side='left' (default)
85-
res_cat = c.searchsorted('apple')
85+
res_cat = cat.searchsorted('apple')
8686
assert res_cat == 2
8787
assert is_scalar(res_cat)
8888

89-
res_ser = s.searchsorted('apple')
89+
res_ser = ser.searchsorted('apple')
9090
assert res_ser == 2
9191
assert is_scalar(res_ser)
9292

93-
res_cat = c.searchsorted('apple')
94-
res_ser = s.searchsorted('apple')
95-
assert res_cat == 2
96-
assert res_ser == 2
97-
9893
# Searching for single item array, side='left' (default)
99-
res_cat = c.searchsorted(['bread'])
100-
res_ser = s.searchsorted(['bread'])
94+
res_cat = cat.searchsorted(['bread'])
95+
res_ser = ser.searchsorted(['bread'])
10196
exp = np.array([3], dtype=np.intp)
10297
tm.assert_numpy_array_equal(res_cat, exp)
10398
tm.assert_numpy_array_equal(res_ser, exp)
10499

105100
# Searching for several items array, side='right'
106-
res_cat = c.searchsorted(['apple', 'bread'], side='right')
107-
res_ser = s.searchsorted(['apple', 'bread'], side='right')
101+
res_cat = cat.searchsorted(['apple', 'bread'], side='right')
102+
res_ser = ser.searchsorted(['apple', 'bread'], side='right')
108103
exp = np.array([3, 5], dtype=np.intp)
109104
tm.assert_numpy_array_equal(res_cat, exp)
110105
tm.assert_numpy_array_equal(res_ser, exp)

0 commit comments

Comments
 (0)