4
respostas

get_dummies reverso

Olá, tudo bem?

Gostaria de saber como retornar um df sem ser binário, fazendo um get_dummies reverso, como seria isso?

4 respostas

Oi, Matheus! Tudo bem com você?

Tem uma solução possível para fazer o get_dummies reverso, mas ela tem algumas limitações. A primeira é que em caso de utilizar o parâmetro drop_first=True não é possível encontrar a partir do dataframe dummyzado qual a primeira variável que foi removida, então o dataframe reverso será apenas baseado nas categorias que existem.

A outra limitação, é que, em caso de um dataframe com valores NaN e não declarado o parâmetro dummy_na=True, que irá criar um coluna com valores NaN, não será possível também recuperar os valores NaN que existam nos dados originais.

Sabendo disso, vamos à solução. Tendo um dataframe df dado por:

0
0a
1b
2a
3c
4c
5b

Foi feito o tratamento de categorização dos dados com get_dummies:

df_dummy = pd.get_dummies(df)
df_dummy
abc
0100
1010
2100
3001
4001
5010

O dataframe reverso df_reverso com o método idxmax especificando o parâmetro axis=1 da seguinte forma:

df_reverso = df_dummy.idxmax(axis=1)
df_reverso

O resultado que obtemos é idêntico ao dataframe original (df):

0
0a
1b
2a
3c
4c
5b

Espero ter te ajudado. Bons estudos!

Não estou conseguindo, retorna este erro: "reduction operation 'argmax' not allowed for this dtype". Não sei qual dtype usar.

Obrigado!

Oi, Matheus!

Você pode me enviar o print do seu código? Ou mesmo o seu código, por favor.

Consegui resolver, muito obrigado!!