Os conjuntos de dados para execução de aprendizado de máquina incluem variáveis numéricas e categóricas. Variáveis categóricas são dados do tipo string que os humanos compreendem facilmente. Máquinas, por outro lado, não conseguem entender as entradas categóricas diretamente. Consequentemente, o conteúdo categórico deve ser transformado em valores numéricos que as máquinas podem interpretar.
Neste tutorial, discutiremos três maneiras diferentes de converter valores categóricos em valores numéricos no quadro de dados de pandas
Abordagem 1: Usando Substituir ()
No python, substituir () é usado para alterar ou converter os valores fornecidos em novos valores que especificamos. Para substituir vários valores, precisamos passar duas listas como parâmetros. A primeira lista armazenará os valores reais a serem substituídos e a segunda lista armazenará os valores que substituem os valores na primeira lista.
Sintaxe
Dataframe_object ['colun'] = dataframe_object ['coluna']].substitua ([value1, value2,…], [value1, value2,…])Aqui, a coluna é o nome da coluna em que estamos substituindo os valores.
Considere o DataFrame
Vamos criar o quadro de dados de pandas nomeado conjuntos que seguram 4 colunas com 10 linhas.
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeVemos duas colunas com o tipo categórico (objeto), i.e., prioridade e gênero.
Portanto, precisamos convertê -los em valores numéricos/inteiros.
Exemplo 1
Vamos substituir os valores na coluna de gênero usando o método replate ().
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeExplicação
Estamos substituindo 'm' por 1 e 'f' por 2 e armazenando os valores da coluna novamente na coluna de gênero. Podemos ver que a coluna de gênero possui valores dentro de 1 ou 2.
Exemplo 2
Vamos substituir os valores na coluna prioritária usando o método replate ().
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeExplicação
Existem três categorias na coluna prioritária. Eles são 'baixos', 'altos' e 'médios'. Estamos substituindo 'Low' por 0, 'médio' por 1 e 'alto' por 2 e armazenando os valores da coluna novamente na coluna prioritária.
Abordagem 2: Usando Aplicar (fatorize ())
O outro método que os pandas nos forneceram é o 'DataFrame.Aplicar () 'Função para converter todos os valores categóricos em números inteiros.
Para converter várias colunas categóricas em números inteiros, seguimos esta técnica:
O método da fatoração aceitará um valor com um tipo de dados 'objeto' e o converterá em 'int'.
Se você deseja converter apenas os valores categóricos de uma coluna específica em números inteiros, aplicar () não é usado.
Sintaxe para coluna única
Dataframe_object ['coluna'] = pandas.fatorize (dataframe_object ['coluna']) [0]Sintaxe para todas as colunas
Dataframe_object [dataframe_object.select_dtypes (['objeto']).colunas] = dataframe_object [dataframe_object.select_dtypes (['objeto']).colunas].Aplicar (Lambda X: Pandas.fature (x) [0])Observação: A substituição começará a partir de 0.
Exemplo 1: Substitua os valores categóricos de coluna única
Vamos substituir os valores na coluna de gênero usando o método fatalize ().
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeExplicação
Estamos substituindo 'm' por 0 e 'f' por 1 e armazenando os valores da coluna novamente na coluna de gênero. Agora, podemos ver que a coluna de gênero possui valores dentro de 0 ou 1.
Exemplo 2: substitua todos os valores categóricos da coluna
Vamos substituir os valores em todas as colunas usando o método Aplicar (fatorize ()).
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeExplicação
Podemos ver a seguir:
Até agora, vimos a substituição de valores categóricos por valores inteiros em colunas únicas ou todas as categóricas conhecidas. Suponha que exista um conjunto de dados enorme com mais de um lakh registros. Como substituir os valores categóricos?
A solução é a codificação do rótulo.
Vamos discutir esta abordagem.
Abordagem 3: Usando o LabelEncoding
LABELENCODER () é o método presente dentro do módulo Sklearn, que converterá valores categóricos de uma coluna específica em um número inteiro. Não precisamos especificar os valores categóricos.
O método fit_transform () é usado junto com LABELENCODER () que se encaixa nos valores transformados.
Nesta técnica, os valores substituídos começam de 0 e a substituição é feita em ordem alfabética dos valores categóricos.
Sintaxe
Dataframe_object ['colun'] = LabelEncoder ().fit_transform (dataframe_object ['coluna'])Aqui, a coluna é o nome da coluna em que estamos substituindo os valores.
Exemplo
Vamos substituir os valores no gênero, colunas prioritárias usando a seguinte abordagem:
# Importe o quadro de dados do módulo PandasSaída
Código Prioridade de gênero IdadeExplicação
Conclusão
Nosso guia gira em torno da conversão de valores categóricos em valores numéricos para que eles possam ser tornados compreensíveis pelas máquinas, pois o tipo de dados do objeto não pode ser processado por eles. Nós apresentamos você às três abordagens apresentadas pela biblioteca "pandas" para obter o tipo de dados necessário. Lembre -se, você deve usar a abordagem de codificação de gravadores, pois não sabe quantas categorias estão presentes na coluna do quadro de dados do pandas.