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

Pandas retorna erro

quando tento rodar o codigo ele me retorna o seguinte erro:

Traceback (most recent call last):
  File "mltest2.py", line 6, in <module>
    X_df = df[['home','busca','logado']]
  File "C:\Users\Renan Frantz.DESKTOP-U26BJ62\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 2682, in __getitem__
    return self._getitem_array(key)
  File "C:\Users\Renan Frantz.DESKTOP-U26BJ62\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\frame.py", line 2726, in _getitem_array
    indexer = self.loc._convert_to_indexer(key, axis=1)
  File "C:\Users\Renan Frantz.DESKTOP-U26BJ62\AppData\Local\Programs\Python\Python37-32\lib\site-packages\pandas\core\indexing.py", line 1327, in _convert_to_indexer
    .format(mask=objarr[mask]))
KeyError: "['busca' 'logado'] not in index"

não sei o que está errado, já chequei com o código do video e pelo o que eu vi está tudo de acordo, segue o mesmo:

from classify import classify_search
from sklearn.naive_bayes import MultinomialNB
import pandas as pd

df = pd.read_csv('acesso.csv')
X_df = df[['home','busca','logado']]
Y_df = df['comprou']

Xdummies_df = pd.get_dummies(X_df)
Ydummies_df = Y_df

X = Xdummies_df.values
Y = Ydummies_df.values

train_size = int(0.9 * len(Y))
test_size =  len(Y) - train_size

Xtrain = X[:train_size]
Ytrain = Y[:train_size]

Xtest = X[-test_size:]
Ytest = Y[-test_size:]

model = MultinomialNB()
model.fit(Xtrain, Ytrain)

result = model.predict(Xtest)
difference = result - Ytest

total_rights = len([d for d in difference if d == 0])
total = len(Ytest)

percentage = total_rights / total * 100

print(percentage)
print(total)

(escrevo o código em inglês porque acho que fica mais esteticamente bonito e isso me impede de só copiar o código)

1 resposta
solução!

Foi besteira minha, não deveria ser acesso.csv e sim busca.csv no pd.read_csv