Como substituir strings repetidas por valores numéricas em um dataframe pandas no Python?

Eu tenho um dataframe de autores de 10 mil linhas e cada autor tem 4 linhas, o que significa que eu tenho 2500 autores nesse dataframe. E eu queria saber como substituir strings repetidas por valores numéricos em um dataframe pandas no Python. Quero substituir cada nome de autor por um número, idealmente usando tidyverse. Exemplo do que eu espero:

Autor  Valor
aaa       111
aaa       112
bbb       156
bbb       165

---------
1       111
1       112
2       156
2       165

Para resolver esse tipo de problema, você pode usar o método pd.factorize().

Exemplo no código:

df['Author'] = pd.factorize(df['Author'])[0] + 1