1
resposta

Exercicio Analise Descritiva

Estou no começo da atividade e ao tentar gerar a variavel frequencia da erro.

frequencia = pd.value_counts(
    pd.cut(x = dados.Renda,
           bins = classes,
           labels = labels,
           include_lowest = True)
)
frequencia

essa é a formula que copiei da aula mas qnd tento rodar nao funciona, aparece isso:

ValueError                                Traceback (most recent call last)
<ipython-input-20-d81f8721698d> in <cell line: 1>()
      1 frequencia = pd.value_counts(
----> 2     pd.cut(x = dados.Renda,
      3            bins = classes,
      4            labels = labels,
      5            include_lowest = True)
1 frames
/usr/local/lib/python3.10/dist-packages/pandas/core/reshape/tile.py in _bins_to_cuts(x, bins, right, labels, precision, include_lowest, dtype, duplicates, ordered)
    452         else:
    453             if len(labels) != len(bins) - 1:
--> 454                 raise ValueError(
    455                     "Bin labels must be one fewer than the number of bin edges"
    456                 )

ValueError: Bin labels must be one fewer than the number of bin edges

gostaria de saber o que está errado

1 resposta

Oi Plinio, tudo bem?

O erro ValueError: Bin labels must be one fewer than the number of bin edges indica que o número de rótulos (labels) que você está tentando usar não é compatível com o número de classes (bins) que você definiu.

A função pd.cut() divide o conjunto de dados em intervalos distintos, e cada intervalo é chamado de 'bin'. O argumento labels é usado para nomear esses intervalos. Portanto, o número de rótulos deve ser sempre um a menos que o número de 'bins', pois os rótulos são aplicados entre os 'bins'.

Então, verifique se o número de labels é um a menos que o número de bins em seu código. Se não for, ajuste isso e tente novamente. No código em aula as variáveis são:

classes = [0, 1576, 3152, 7880, 15760, 200000]
labels = ['E', 'D', 'C', 'B', 'A']

Espero ter ajudado.

Caso surja alguma dúvida, fico à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!