Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Duvida sobre o sns.scatterplot

Estou tentando realizar umas das atividades propostas do curso, porem ao tentar rodar esta linha "sns.scatterplot(x="horas_esperadas",y="preco",hue=val_y,data = val_x)" o compilador apresenta a seguinte mensagem "ValueError Traceback (most recent call last) in () ----> 1 sns.scatterplot(x="horas_esperadas",y="preco",hue=val_y,data = val_x) 11 frames /usr/local/lib/python3.6/dist-packages/pandas/core/internals/managers.py in _stack_arrays(tuples, dtype) 1874 stacked = np.empty(shape, dtype=dtype) 1875 for i, arr in enumerate(arrays): -> 1876 stacked[i] = _asarray_compat(arr) 1877 1878 return stacked, placement

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

Também, ao tentar rodar a seguinte linha

" import matplotlib.pyplot as plt plt.contourf(xx,yy,z,alpha= 0.4) plt.scatter(val_x.horas_esperadas,val_x.preco,c=val_y,s=1)"

o seguinte erro aparece:

"ValueError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/matplotlib/axes/_axes.py in _parse_scatter_color_args(c, edgecolors, kwargs, xshape, yshape, get_next_color_func) 4283 try: # Then is 'c' acceptable as PathCollection facecolors? -> 4284 colors = mcolors.to_rgba_array(c) 4285 n_elem = colors.shape[0]

7 frames ValueError: Invalid RGBA argument: 'finalizado'

During handling of the above exception, another exception occurred:

ValueError Traceback (most recent call last) /usr/local/lib/python3.6/dist-packages/matplotlib/axes/_axes.py in _parse_scatter_color_args(c, edgecolors, kwargs, xshape, yshape, get_next_color_func) 4303 "'c' argument must be a mpl color, a sequence of mpl " 4304 "colors or a sequence of numbers, not {}." -> 4305 .format(c) # note: could be long depending on c 4306 ) 4307 else:

ValueError: 'c' argument must be a mpl color, a sequence of mpl colors or a sequence of numbers, not finalizado"

Alguém saberia reponder ? Abaixo colocarei o codigo do program para que os senhores analisem e possam me auxiliar att Vitor

!pip install seaborn==0.9.0import pandas as pd
file = 'https://gist.githubusercontent.com/guilhermesilveira/1b7d5475863c15f484ac495bd70975cf/raw/16aff7a0aee67e7c100a2a48b676a2d2d142f646/projects.csv'
data = pd.read_csv(file)
data.head()
a_renomear = {
    "expected_hours" : "horas_esperadas",
    "price" : "preco",
    "unfinished" : "nao_finalizado"
}
data = data.rename(columns = a_renomear)
data.head()troca = {
    0:1,
    1:0
}
data["finalizado"] = data.nao_finalizado.map(troca)
data.head()
sns.scatterplot(x= "horas_esperadas",y="preco",data=data)
sns.relplot(x="horas_esperadas", y="preco", hue="finalizado", col="finalizado", data=data)
x = data[["horas_esperadas","preco"]]
y = data[["finalizado"]]
from sklearn.model_selection import train_test_split
SEED = 3
train_x, val_x, train_y, val_y = train_test_split(x,y,random_state = SEED , test_size = 0.25 , stratify = y)
from sklearn.svm import LinearSVC
model = LinearSVC()
model.fit(train_x,train_y)
previsoes = model.predict(val_x)
from sklearn.metrics import accuracy_score
taxa_de_acerto = accuracy_score(val_y,previsoes)*100
print("taxa de acerto = %.2f%%" %(taxa_de_acerto))
import numpy as np
teste_de_baseline = np.ones(540)
baseline = accuracy_score(teste_de_baseline,val_y)*100
print("nossa baseline é de %.2f%%" %baseline)
import numpy as np
teste_de_baseline = np.ones(540)
baseline = accuracy_score(teste_de_baseline,val_y)*100
print("nossa baseline é de %.2f%%" %baseline)
sns.scatterplot(x="horas_esperadas",y="preco",hue=val_y,data = val_x) # parte na qual o erro acontece
1 resposta
solução!

Olá Vitor,

Sobre o primeiro erro, a causa está na linha: y = data[["finalizado"]], o correto seria: y = data["finalizado"]. Isso porque o y deve ser uma Series.

Depois de fazer essa alteração é recomendado você executar todo o código novamente do início. Se ainda tiver algum problema é só falar.

Para tentar explicar melhor, com colchetes duplos [[]] você recebe um DataFrame, com apenas um colchete [] você recebe uma Series.

Uma dica quando estiver utilizando o Google Colaboratory é que você pode compartilhar o link do seu código, isso facilita para gente acessar e ver o seu código.