1
resposta

Erro na criação sem outliers

Olá, bom dia!

Nesse código: sem_outliers = df_prophet[(df_prophet['y'] > previsao['yhat_lower']) & (df_prophet['y'] < previsao['yhat_upper'])]

Quando eu faço ele, retorna esse erro: ValueError: Can only compare identically-labeled Series objects.

Saberia como resolver esse problema?

Obrigada.

1 resposta

Olá, Gustavo! Como vai? :)

Executei o notebook da aula no Google Colab e não obtive esse erro. O erro com que você se deparou ocorre ao comparar duas séries que não possuem os mesmos índices ou rótulos. No seu caso, df_prophet e previsao podem não estar alinhados de forma correta.

Uma maneira de resolver isso é garantir que ambos os DataFrames tenham os mesmos índices antes de fazer a comparação. Vou deixar abaixo um exemplo de como você pode fazer isso:

  1. Verifique se ambos os DataFrames possuem a mesma quantidade de linhas e os mesmos índices:
print(df_prophet.shape)
print(previsao.shape)

print(df_prophet.index)
print(previsao.index)
  1. Caso os índices sejam diferentes, você pode alinhar os DataFrames usando o método reindex:
previsao = previsao.reindex(df_prophet.index)
  1. Após garantir que os índices estão alinhados, você pode fazer a comparação novamente:
sem_outliers = df_prophet[(df_prophet['y'] > previsao['yhat_lower']) & (df_prophet['y'] < previsao['yhat_upper'])]

→ Uma outra alternativa para resolver o problema é usar o método reset_index() em ambas as séries antes da comparação:

sem_outliers = df_prophet.reset_index()[(df_prophet.reset_index()['y'] > previsao['yhat_lower']) & (df_prophet.reset_index()['y'] < previsao['yhat_upper'])]

→ O reset_index() cria um novo índice numérico para o DataFrame. Ao usar o reset_index() são criados novos índices sequenciais e, por isso, é mais uma abordagem para garantir que ambos os DataFrames estejam alinhados. Mas, deve ser usado com cuidado, a depender da importância dos índices originais.

Desejo sucesso! Continue firme nos estudos! ✨✨

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!