pandas.CategoricalIndex.set_categories # 分类索引。set_categories ( * args , ** kwargs ) [来源] # 将类别设置为指定的新类别。 new_categories可以包含新类别(这将导致未使用的类别)或删除旧类别(这将导致值设置为NaN)。如果rename=True,类别将被简单地重命名(比旧类别中更少或更多的项目将导致值 NaN分别设置为或未使用的类别)。 该方法可用于同时执行多个添加、删除和重新排序操作,因此比通过更专业的方法执行各个步骤更快。 另一方面,此方法不执行检查(例如,重新排序时旧类别是否包含在新类别中),这可能会导致令人惊讶的变化,例如在使用特殊字符串数据类型时,它不考虑 S1 字符串等于单个 char python 字符串。 参数: new_categories类索引类别按新顺序排列。 有序布尔值,默认 False是否将分类视为有序分类。如果未给出,请勿更改订购信息。 重命名bool,默认 Falsenew_categories 是否应被视为旧类别的重命名或重新排序的类别。 返回: 类别重新排序的分类。 加薪: 值错误如果 new_categories 未验证为类别 也可以看看 rename_categories重命名类别。 reorder_categories重新排序类别。 add_categories添加新类别。 remove_categories删除指定的类别。 remove_unused_categories删除不使用的类别。 例子 为了pandas.Series: >>> raw_cat = pd.Categorical(['a', 'b', 'c', 'A'], ... categories=['a', 'b', 'c'], ordered=True) >>> ser = pd.Series(raw_cat) >>> ser 0 a 1 b 2 c 3 NaN dtype: category Categories (3, object): ['a' < 'b' < 'c'] >>> ser.cat.set_categories(['A', 'B', 'C'], rename=True) 0 A 1 B 2 C 3 NaN dtype: category Categories (3, object): ['A' < 'B' < 'C'] 为了pandas.CategoricalIndex: >>> ci = pd.CategoricalIndex(['a', 'b', 'c', 'A'], ... categories=['a', 'b', 'c'], ordered=True) >>> ci CategoricalIndex(['a', 'b', 'c', nan], categories=['a', 'b', 'c'], ordered=True, dtype='category') >>> ci.set_categories(['A', 'b', 'c']) CategoricalIndex([nan, 'b', 'c', nan], categories=['A', 'b', 'c'], ordered=True, dtype='category') >>> ci.set_categories(['A', 'b', 'c'], rename=True) CategoricalIndex(['A', 'b', 'c', nan], categories=['A', 'b', 'c'], ordered=True, dtype='category')