Skip to content

Commit ef999c3

Browse files
committed
merged with upstream master
1 parent fbaba1b commit ef999c3

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

pandas/core/algorithms.py

+5-2
Original file line numberDiff line numberDiff line change
@@ -988,9 +988,12 @@ def _get_data_algo(values, func_map):
988988
elif is_unsigned_integer_dtype(values):
989989
f = func_map['uint64']
990990
values = _ensure_uint64(values)
991-
elif is_categorical(values) and values._ordered:
992-
f = func_map['float64']
991+
elif is_categorical_dtype(values):
993992
values = values._values_for_rank()
993+
if is_float_dtype(values):
994+
f = func_map['float64']
995+
else:
996+
f = func_map['object']
994997
else:
995998
values = _ensure_object(values)
996999

pandas/core/categorical.py

+8-4
Original file line numberDiff line numberDiff line change
@@ -1416,10 +1416,14 @@ def _values_for_rank(self):
14161416
numpy array
14171417
14181418
"""
1419-
values = self._codes.astype('float64')
1420-
if self._ordered:
1421-
na_mask = (values == -1)
1422-
values[na_mask] = np.nan
1419+
if self.ordered:
1420+
values = self.codes
1421+
mask = values == -1
1422+
if mask.any():
1423+
values = values.astype('float64')
1424+
values[mask] = np.nan
1425+
else:
1426+
values = np.array(self)
14231427
return values
14241428

14251429
def order(self, inplace=False, ascending=True, na_position='last'):

0 commit comments

Comments
 (0)