pandas equivalentes da codificação de Stata

Eu estou procurando uma maneira de replicar ocodificar comportamento no Stata, que converterá uma coluna de string categórica em uma coluna numérica.

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

O que resulta em:

     val
cat     
A     10
A     20
B     30

Eu gostaria de converter a coluna cat de strings para inteiros, mapeando cada string única para um inteiro (arbitrário) 1-para-1. Isso resultaria em:

     val
cat     
1     10
1     20
2     30

Ou tão bom assim:

  cat  val
0   1   10
1   1   20
2   2   30

Alguma sugestão?

Muito obrigado, como sempre, Rob

questionAnswers(3)

yourAnswerToTheQuestion