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
| Renda | Classe |
---|
0 | 1273 | Ê |
1 | 4700 | C |
2 | 17568 | B |
3 | 15866 | B |
4 | 2756 | D |
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
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