pandas.Series.cat.reorder_categories#
- Series.cat.reorder_categories(*args, **kwargs)[源代码]#
按照 new_categories 中的指定重新排序类别。
new_categories
需要包含所有旧类别,并且不包含新的类别项。- 参数:
- new_categoriesIndex-like
新顺序中的类别。
- 有序布尔值, 可选
是否将分类变量视为有序分类变量。如果未指定,则不更改有序信息。
- 返回:
- Categorical
重新排序类别的分类变量。
- 引发:
- ValueError
如果新类别不包含所有旧类别项目或任何新项目
参见
rename_categories
重命名类别。
add_categories
添加新类别。
remove_categories
移除指定的类别。
remove_unused_categories
移除未使用的分类。
set_categories
将类别设置为指定的类别。
例子
对于
pandas.Series
:>>> ser = pd.Series(["a", "b", "c", "a"], dtype="category") >>> ser = ser.cat.reorder_categories(["c", "b", "a"], ordered=True) >>> ser 0 a 1 b 2 c 3 a dtype: category Categories (3, object): ['c' < 'b' < 'a']
>>> ser.sort_values() 2 c 1 b 0 a 3 a dtype: category Categories (3, object): ['c' < 'b' < 'a']
>>> ci = pd.CategoricalIndex(["a", "b", "c", "a"]) >>> ci CategoricalIndex(['a', 'b', 'c', 'a'], categories=['a', 'b', 'c'], ordered=False, dtype='category') >>> ci.reorder_categories(["c", "b", "a"], ordered=True) CategoricalIndex(['a', 'b', 'c', 'a'], categories=['c', 'b', 'a'], ordered=True, dtype='category')