pandas.from_dummies#

pandas.from_dummies(данные, sep=None, default_category=None)[источник]#

Создать категориальный DataFrame из DataFrame фиктивных переменных.

Инвертирует операцию, выполненную get_dummies().

Добавлено в версии 1.5.0.

Параметры:
данныеDataFrame

Данные, содержащие фиктивно-кодированные переменные в виде целочисленных столбцов из 1 и 0.

sepstr, по умолчанию None

Разделитель, используемый в именах столбцов для фиктивных категорий, это символ, указывающий на разделение имён категорий от префиксов. Например, если ваши имена столбцов 'prefix_A' и 'prefix_B', вы можете удалить подчёркивание, указав sep='_'.

default_categoryNone, Hashable или словарь Hashables, по умолчанию None

Категория по умолчанию — это подразумеваемая категория, когда значение не имеет ни одной из перечисленных категорий, указанных с единицей, т.е. если все фиктивные переменные в строке равны нулю. Может быть одним значением для всех переменных или словарем, непосредственно сопоставляющим категории по умолчанию с префиксом переменной.

Возвращает:
DataFrame

Категориальные данные, декодированные из фиктивных входных данных.

Вызывает:
ValueError
  • Когда входные данные DataFrame data содержит значения NA.

  • Когда входные данные DataFrame data содержит имена столбцов с разделителями, которые не соответствуют указанному разделителю sep.

  • Когда dict передано в default_category не включает подразумеваемую категорию для каждого префикса.

  • Когда значение в data имеет более одной назначенной категории.

  • Когда default_category=None и значение в data не имеет назначенной категории.

TypeError
  • Когда входные данные data не является типом DataFrame.

  • Когда входные данные DataFrame data содержит не фиктивные данные.

  • Когда переданный sep имеет неправильный тип данных.

  • Когда переданный default_category имеет неправильный тип данных.

Смотрите также

get_dummies()

Преобразовать Series или DataFrame в фиктивные коды.

Categorical

Представление категориальной переменной в классическом виде.

Примечания

Столбцы переданных фиктивных данных должны содержать только 1 и 0 или булевы значения.

Примеры

>>> df = pd.DataFrame({"a": [1, 0, 0, 1], "b": [0, 1, 0, 0],
...                    "c": [0, 0, 1, 0]})
>>> df
   a  b  c
0  1  0  0
1  0  1  0
2  0  0  1
3  1  0  0
>>> pd.from_dummies(df)
0     a
1     b
2     c
3     a
>>> df = pd.DataFrame({"col1_a": [1, 0, 1], "col1_b": [0, 1, 0],
...                    "col2_a": [0, 1, 0], "col2_b": [1, 0, 0],
...                    "col2_c": [0, 0, 1]})
>>> df
      col1_a  col1_b  col2_a  col2_b  col2_c
0       1       0       0       1       0
1       0       1       1       0       0
2       1       0       0       0       1
>>> pd.from_dummies(df, sep="_")
    col1    col2
0    a       b
1    b       a
2    a       c
>>> df = pd.DataFrame({"col1_a": [1, 0, 0], "col1_b": [0, 1, 0],
...                    "col2_a": [0, 1, 0], "col2_b": [1, 0, 0],
...                    "col2_c": [0, 0, 0]})
>>> df
      col1_a  col1_b  col2_a  col2_b  col2_c
0       1       0       0       1       0
1       0       1       1       0       0
2       0       0       0       0       0
>>> pd.from_dummies(df, sep="_", default_category={"col1": "d", "col2": "e"})
    col1    col2
0    a       b
1    b       a
2    d       e