1
resposta

função cut() e categorização intervalar

Não consegui entender a utilização do cut() e como que o professor cria uma categorização intervalar. Em alguns momentos como esses eu sinto muita falta do professor detalhar e explicar melhor cada função nova que ele passa. O que me falta aqui é entender a lógica disso tudo. Não conseguiria replicar o que ele fez. É como quando estudamos física e invés do professor passar a lógica ele passa apenas a fórmula. Podem me explicar melhor, por favor?

1 resposta

Olá Pietro, tudo bem com você ? Espero que sim.

A nossa motivação em utilizar a função cut e criar a categorização intervalar, é para termos a informação de forma mais clara.

Por exemplo, se tivermos uma base de dados com a renda das famílias brasileiras e queremos visualizar como o povo brasileiro está distribuído nas classes A,B,C, D e Ê. Podemos utilizar a função cut para conseguir visualizar essa informação.

Para tornar meu exemplo mais claro criei um DataFrame com dados aleatórios:

INICIO TRECHO DE CÓDIGO

# tamanho vai guardar a quantidade de dados que quero geral
tamanho = 100
# utilizei a função randint para gerar números aleatórios de 0 até 20 mil e cem, salvei esses números na variável rendas
rendas = np.random.randint(0, 20100, tamanho)
# criei um DataFrame com os dados aleatórios e defini o nome da coluna como Renda, salvei esse DataFrame na variável dados
dados = pd.DataFrame(rendas, columns=["Renda"])

FIM TRECHO DE CÓDIGO

Agora podemos voltar para a definição dos intervalos:

Classe A são famílias com renda acima de 20 mil

Classe B são famílias com renda de 10 mil até 20 mil

Classe C são famílias com renda de 4 mil até 10 mil

Classe D são famílias com renda de 2 mil até 4 mil

Classe Ê são famílias com renda de até 2 mil

Com isso definido vamos criar uma variável com o nome classes que vai guardar essa informação dos intervalos:

INICIO TRECHO DE CÓDIGO

classes = [0, 2000, 4000, 10000, 20000, 200000]

FIM TRECHO DE CÓDIGO

Depois vamos criar as labels para ficar mais claro o que representa cada intervalo:

INICIO TRECHO DE CÓDIGO

labels = ['Ê', 'D', 'C', 'B', 'A']

FIM TRECHO DE CÓDIGO

Agora finalmente podemos utilizar a função cut, que vai criar um Series colocando cada registro que temos dentro de uma das classes definidas.

INICIO TRECHO DE CÓDIGO

classes = pd.cut(x=dados.Renda, bins=classes, labels=labels)

FIM TRECHO DE CÓDIGO

Agora podemos incluir essa Series dentro do nosso DataFrame dados:

INICIO TRECHO DE CÓDIGO

dados['Classe'] = classes
dados.head()

FIM TRECHO DE CÓDIGO

Teremos como resultado agora cada registro com a classificação Classe: INICIO TABELA

RendaClasse
01273Ê
14700C
217568B
315866B
42756D

FIM TABELA

Agora podemos finalmente ver como os nosso dados estão distribuídos nessas classes, utilizando a função value_counts na nossa coluna Classe:

INICIO TRECHO DE CÓDIGO

pd.value_counts(dados.Classe)

FIM TRECHO DE CÓDIGO

Teremos o resultado:

INICIO TABELA

B52
C30
Ê9
D8
A1

FIM TABELA

Espero ter ajudado a entender a nossa motivação de usar o cut e como utilizar ele, mas qualquer duvida não hesite em perguntar.

Bons Estudos

: ) Smile Face

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software