Преобразование серий pandas из строки в уникальный int id

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

2 Solutions collect form web for “Преобразование серий pandas из строки в уникальный int id”

Вы можете использовать pandas.factorize :

In [32]: s = pd.Series(['a','b','c']) In [33]: labels, levels = pd.factorize(s) In [35]: labels Out[35]: array([0, 1, 2]) 

Пример использования нового панда- categorical типа в пандах 0.15+

http://pandas.pydata.org/pandas-docs/version/0.16.2/categorical.html

 In [553]: x = pd.Series(['a', 'a', 'a', 'b', 'b', 'c']).astype('category') In [554]: x Out[554]: 0 a 1 a 2 a 3 b 4 b 5 c dtype: category Categories (3, object): [ a , b , c] In [555]: x.cat.codes Out[555]: 0 0 1 0 2 0 3 1 4 1 5 2 dtype: int8 
  • Исключить столбцы из pandas, где ()
  • Идентификация последовательных вхождений значения
  • объединить два кадра данных без повторов pandas
  • Как увеличить скорость python над циклами?
  • Выберите данные на определенном уровне из MultiIndex
  • vlookup между 2 кадрами данных Pandas
  • Pandas: импортировать несколько файлов csv в dataframe, используя цикл и иерархическую индексацию
  • Pandas _ metadata ошибки сохранения данных DataFrame
  • Как добавить добавочные числа в новый столбец с помощью Pandas
  • pandas сводная таблица по убыванию python
  • повысить значение ValueError («длины строк должны совпадать для сравнения») при манипулировании файловой рамкой
  • Python - лучший язык программирования в мире.