pyspark.pandas.Series.cat.reorder_categories

cat.reorder_categories(new_categories: Union[pandas.core.indexes.base.Index, List], ordered: Optional[bool] = None) → Optional[ps.Series]

Reorder categories as specified in new_categories.

new_categories needs to include all old categories and no new category items.

Parameters
new_categoriesIndex-like

The categories in new order.

orderedbool, optional

Whether or not the categorical is treated as an ordered categorical. If not given, do not change the ordered information.

Returns
catSeries or None

Categorical with removed categories or None if inplace=True.

Raises
ValueError

If the new categories do not contain all old category items or any new ones

See also

rename_categories

Rename categories.

add_categories

Add new categories.

remove_categories

Remove the specified categories.

remove_unused_categories

Remove categories which are not used.

set_categories

Set the categories to the specified ones.

Examples

>>> s = ps.Series(list("abbccc"), dtype="category")
>>> s  
0    a
1    b
2    b
3    c
4    c
5    c
dtype: category
Categories (3, object): ['a', 'b', 'c']
>>> s.cat.reorder_categories(['c', 'b', 'a'], ordered=True)  
0    a
1    b
2    b
3    c
4    c
5    c
dtype: category
Categories (3, object): ['c' < 'b' < 'a']