Skip to content

Commit a67cd85

Browse files
committed
PERF: categorical rank GH#15498
1 parent 81df7df commit a67cd85

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

pandas/core/algorithms.py

+4-3
Original file line numberDiff line numberDiff line change
@@ -974,9 +974,6 @@ def _get_data_algo(values, func_map):
974974

975975
f = None
976976

977-
if is_categorical_dtype(values):
978-
values = values._values_for_rank()
979-
980977
if is_float_dtype(values):
981978
f = func_map['float64']
982979
values = _ensure_float64(values)
@@ -993,6 +990,10 @@ def _get_data_algo(values, func_map):
993990
f = func_map['uint64']
994991
values = _ensure_uint64(values)
995992

993+
elif is_categorical_dtype(values):
994+
f = func_map['float64']
995+
values = values._values_for_rank()
996+
996997
else:
997998
values = _ensure_object(values)
998999

pandas/core/categorical.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -1420,8 +1420,8 @@ def _values_for_rank(self):
14201420
if self.ordered:
14211421
values = self.codes
14221422
mask = values == -1
1423+
values = values.astype('float64')
14231424
if mask.any():
1424-
values = values.astype('float64')
14251425
values[mask] = np.nan
14261426
elif self.categories.is_numeric():
14271427
values = np.array(self)

0 commit comments

Comments
 (0)