Панды эквивалент кодирования Stata

Я ищу способ повторитьшифровать поведение в Stata, которое преобразует столбец категориальной строки в столбец числа.

x = pd.DataFrame({'cat':['A','A','B'], 'val':[10,20,30]})
x = x.set_index('cat')

Что приводит к:

     val
cat     
A     10
A     20
B     30

Я хотел бы преобразовать столбец cat из строк в целые числа, сопоставляя каждую уникальную строку с (произвольным) целым числом 1-к-1. Это приведет к:

     val
cat     
1     10
1     20
2     30

Или так же хорошо:

  cat  val
0   1   10
1   1   20
2   2   30

Какие-либо предложения?

Большое спасибо, как всегда, Роб

Ответы на вопрос(3)

Ваш ответ на вопрос