1
resposta

[Dúvida] Erro no streamlit

Aparece esse erro de Array, e esta tudo como a instrutora fez...

ValueError: Expected 2D array, got 1D array instead: array=['F' 'F' 'F' 'M' 'NE' 'M' 'F' 'NE' 'M' 'M' 'M' 'M' 'F' 'F' 'F' 'F' 'F' 'M' 'F' 'M']. Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.


Traceback:
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\streamlit\runtime\scriptrunner\script_runner.py", line 600, in _run_script
    exec(code, module.__dict__)
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\App.py", line 43, in <module>
    cluster = processar_prever(df)
              ^^^^^^^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\App.py", line 21, in processar_prever
    encoded_sexo =  encoder.transform(df['sexo'])
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\sklearn\utils\_set_output.py", line 157, in wrapped
    data_to_wrap = f(self, X, *args, **kwargs)
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\sklearn\preprocessing\_encoders.py", line 1027, in transform
    X_int, X_mask = self._transform(
                    ^^^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\sklearn\preprocessing\_encoders.py", line 180, in _transform
    X_list, n_samples, n_features = self._check_X(
                                    ^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\sklearn\preprocessing\_encoders.py", line 44, in _check_X
    X_temp = check_array(X, dtype=None, force_all_finite=force_all_finite)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "D:\Users\GUIS\Portfolio-ML\Projeto de MKT -Clusterizacao\venv\Lib\site-packages\sklearn\utils\validation.py", line 938, in check_array
    raise ValueError(
1 resposta

Olá Guilherme, tudo bem?

O erro "Expected 2D array, got 1D array instead" indica que a função transform do encoder está esperando um array bidimensional, mas você está fornecendo um unidimensional. Então, peço que faça algumas verificações:

Antes de passar o DataFrame para a função processar_prever(), você pode verificar a forma dele usando o código:

df.shape

Isso te dará uma ideia de quantas linhas e colunas você tem.

Recomendo analisar os códigos anteriores a esta etapa e verificar se há alguma diferença com código da instrutora.

Caso o problema persista, peço que você compartilhe todo o seu código, assim poderei identificar melhor a causa do problema.

Espero ter ajudado.

Qualquer dúvida, não hesite em compartilhar no fórum.

Abraços!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado