Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Erro no sns.scatterplot - ValueError: could not broadcast input array from shape (540)

Olá, estou tendo um erro na Aula 3 de Machine Learning, a partir do segundo video, quando é para usar o sns.scatterplot em array com 540 previsões de baseline. O erro é o seguinte:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-13-88fb6871a613> in <module>()
----> 1 sns.scatterplot(x="horas_esperadas", y="preco", hue= teste_y, data=teste_x)

11 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/internals/managers.py in _stack_arrays(tuples, dtype)
   1861     stacked = np.empty(shape, dtype=dtype)
   1862     for i, arr in enumerate(arrays):
-> 1863         stacked[i] = _asarray_compat(arr)
   1864 
   1865     return stacked, placement

ValueError: could not broadcast input array from shape (540) into shape (1)

Quando é chamado o comando:"

sns.scatterplot(x="horas_esperadas", y="preco", hue= teste_y, data=teste_x)

Segue o link para vizualizar o colab: https://colab.research.google.com/drive/1gQQYWrgqs7pYsdu2jRHqo_HGHIrxHw1u

2 respostas
solução

Olá Gustavo,

Voltando um pouco no seu código, faça a alteração abaixo:

// Encontre esse código
x = dados[["horas_esperadas", "preco"]]
y = dados[["finalizado"]]

//E então troque o valor de y para:
y = dados['finalizado']

Quando você utiliza os dois colchetes [[]] o valor retornado é um DataFrame, e com apenas um [] é retornado uma Series, e no caso precisamos da classificação (y) como uma Series.

Outro detalhe é no código logo abaixo do que está retornando o erro:

// Seu código:
x_min = teste_x.horas_esperadas.min()
x_max = teste_x.horas_esperadas.max()
y_min = teste_y.preco.min()
y_max = teste_y.preco.max()
print(x_min, x_max, y_min, y_max)

// Altere esses dois valores
y_min = teste_x.preco.min()
y_max = teste_x.preco.max()

É um pouco confuso mesmo, mas existe o y da classificação e o y do gráfico.

Boa Lucas! Deu certo, Valeu cara!

Não fazia ideia que colocar uma lista ou somente a String iria dar outro retorno, boa dica.

Na segunda parte viajei mesmo kkkk, afinal y nem tem a coluna preço.

Valeu mesmo!