Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro na construção de tabela de frequênciais

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

ValueError Traceback (most recent call last) in () 2 pd.cut(x = dados.Renda, 3 bins = classes, ----> 4 labels = labels), 5 )

1 frames /usr/local/lib/python3.7/dist-packages/pandas/core/reshape/tile.py in binsto_cuts(x, bins, right, labels, precision, include_lowest, dtype, duplicates, ordered) 433 if len(labels) != len(bins) - 1: 434 raise ValueError( --> 435 "Bin labels must be one fewer than the number of bin edges" 436 ) 437 if not is_categorical_dtype(labels):

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

2 respostas
solução!

Bom dia Fernando, tudo bem? Espero que sim!

O erro ocorreu porque o tamanho da sua lista labels não está com o tamanho adequado. Ele precisa ter 1 elemento a menos do que o tamanho da lista bins.

Isso ocorre porque o parâmetro bins é formado pelas bordas dos intervalos, ou seja:

Supondo que bins = [1,3,5,7]

A função cut vai criar 3 intervalos baseados no bins:

  • Intervalo de 1 a 3 :[1,3]
  • Intervalo de 3 a 5 :[3,5]
  • Intervalo de 5 a 7 :[5,7]

Portanto precisará de 3 labels, ainda que o parâmetro bins tenha 4 elementos.

Espero que tenha tirado sua dúvida.

Estou à disposição. Bons estudos!

Muito obrigado! Ajudou!