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

Erro na plotagem do primeiro exemplo de statsmodel

Não entendi o erro abaixo:

resultado = seasonal_decompose(chocolura['vendas'], period=2)
ax = resultado.plot()

observacao = resultado.observed
tendencia = resultado.trend
sazonalidade = resultado.seasonal
ruido = resultado.resid


data = ({
       'observacao':observacao,
       'tendencia':tendencia, 
       'sazonalidade':sazonalidade,
       'ruido':ruido
})
resultado = pd.DataFrame(data)
resultado.head()

plot_comparacao(resultado.index, 'observacao', 'tendencia', 'sazonalidade', resultado, 'Exemplo de Statsmodels')



---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-186-9b8851486dff> in <module>
----> 1 plot_comparacao(resultado.index, 'observacao', 'tendencia', 'sazonalidade', resultado, 'Exemplo de Statsmodels')
      2 

3 frames
/usr/local/lib/python3.8/dist-packages/pandas/core/generic.py in __nonzero__(self)
   1535     @final
   1536     def __nonzero__(self):
-> 1537         raise ValueError(
   1538             f"The truth value of a {type(self).__name__} is ambiguous. "
   1539             "Use a.empty, a.bool(), a.item(), a.any() or a.all()."

ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
3 respostas
solução!

Oi Ana Clara, tudo bem? Ana Clara, o erro está sendo gerado porque a função plot_comparacao está esperando um boolean (verdadeiro ou falso) como primeiro argumento, mas você está passando resultado.index, que é uma série de índices do DataFrame.

Verifique se a função plot_comparacao está sendo chamada corretamente e se os argumentos passados estão corretos.

Se a função espera um boolean como primeiro argumento, tente passar True ou False. Se a função não espera um boolean, verifique o tipo de dado esperado para o primeiro argumento e passe o valor correto.

Além disso, da uma olhada na documentação da função plot_comparacao e verifica se está sendo passado os parâmetros corretos, também, se a função é a correta para essa finalidade.

Oi Ana Clara, tudo bem? Tenta esta sintaxe:

plot_comparacao(resultado.index, resultado['observacao'], resultado['tendencia'], resultado['sazonalidade'], resultado, 'Exemplo de Statsmodels')

Pandas que você está usando, como visto no erro?