Метод add_categories
Метод add_categories аксессора cat применяется к категориальной
серии Series и добавляет новые категории в существующий набор.
Этот метод полезен, когда необходимо расширить категориальный признак
новыми значениями, которые могут появиться в данных позже.
Параметр new_categories принимает список или массив новых категорий
для добавления. Метод возвращает новую серию с обновлённым набором
категорий.
Синтаксис
ser.cat.add_categories(new_categories, inplace=False)
Параметры:
new_categories- список или массив новых категорий для добавления.inplace- еслиTrue, изменяет текущую серию, иначе возвращает новую (по умолчаниюFalse).
Пример
Добавим новую категорию в существующий категориальный признак:
import pandas as pd
ser = pd.Series(['a', 'b', 'c', 'a'], dtype='category')
print('До добавления:')
print(ser.cat.categories)
ser_new = ser.cat.add_categories(['d'])
print('\nПосле добавления:')
print(ser_new.cat.categories)
Результат выполнения кода:
До добавления:
Index(['a', 'b', 'c'], dtype='object')
После добавления:
Index(['a', 'b', 'c', 'd'], dtype='object')
Как видно из примера, исходный набор категорий ['a', 'b', 'c']
был расширен новой категорией 'd'.
Пример
Добавление нескольких категорий одновременно:
import pandas as pd
ser = pd.Series([1, 2, 3, 1], dtype='category')
print('Текущие категории:')
print(ser.cat.categories)
ser_new = ser.cat.add_categories([4, 5])
print('\nНовые категории:')
print(ser_new.cat.categories)
Результат выполнения кода:
Текущие категории:
Index([1, 2, 3], dtype='object')
Новые категории:
Index([1, 2, 3, 4, 5], dtype='object')
Таким образом, в категориальный признак были добавлены
сразу две новые категории: 4 и 5.
Пример
Использование параметра inplace для изменения исходной серии:
import pandas as pd
ser = pd.Series(['x', 'y', 'x', 'z'], dtype='category')
print('До изменения:')
print(ser.cat.categories)
ser.cat.add_categories(['w'], inplace=True)
print('\nПосле изменения:')
print(ser.cat.categories)
Результат выполнения кода:
До изменения:
Index(['x', 'y', 'z'], dtype='object')
После изменения:
Index(['x', 'y', 'z', 'w'], dtype='object')
При использовании inplace=True изменения применяются
непосредственно к исходной серии, и метод возвращает None.
Смотрите также
-
метод
rename_categories,
который переименовывает существующие категории -
метод
remove_categories,
который удаляет указанные категории -
метод
set_categories,
который полностью заменяет набор категорий -
атрибут
categories,
который возвращает текущий набор категорий