Преобразование серий 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 DataFrame
  • Шкала передачи данных Pandas по дате
  • НастройкаWithCopyWarning при создании столбцов
  • Создайте Pandas DataFrame из txt-файла с определенным шаблоном
  • Добавьте ярлыки x и y в сюжет панды
  • Репликация строк в кадре данных pandas значением столбца
  • Pandon Pandas - определить, будут ли значения в столбце 0 повторяться в каждом последующем столбце
  • Python - лучший язык программирования в мире.