Erro Serie Temporal

Visualizando 9 posts - 1 até 9 (de 9 do total)
  • Autor
    Posts
  • #28947
    dougtaleb
    Participante

      Olá, boa tarde, estou tentando realizar um estudo/teste de série temporal no ARIMA; no caso, criar um  modelo preditivo para o número de ligações que uma empresa recebe e estou seguindo o script das aulas de Series Temporais com ARIMA; porém estou tendo problemas, a instalação das bibliotecas está ok, a leitura da base de dados também; mas na hora de transformar as variáveis, não estou conseguindo. Poderiam me auxiliar, por gentileza?

      Anexo print da base de dados (estou enviando print no formato de xlsx para ficar mais fácil visualizar) e também a execução de códigos no Jupyter Notebook.

       

      O erro ocorre quando vou tentar ajustar a questão da data. No caso para ficar em formato de dia, mês e ano.

      Código: “dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)
      dataset = pd.read_csv(‘base_ligacoes.csv’, parse_dates = [‘Data’], index_col = ‘Data’, date_parser = dateparse)”

      Resposta do Jupyer: ”

      <ipython-input-8-21945fdda994>:1: FutureWarning: The pandas.datetime class is deprecated and will be removed from pandas in a future version. Import from datetime module instead.
      dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)

      —————————————————————————
      TypeError Traceback (most recent call last)
      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in converter(*date_cols)
      3358 result = tools.to_datetime(
      -> 3359 date_parser(*date_cols), errors=”ignore”, cache=cache_dates
      3360 )

      <ipython-input-8-21945fdda994> in <lambda>(dates)
      —-> 1 dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)
      2 dataset = pd.read_csv(‘base_ligacoes.csv’, parse_dates = [‘Data’], index_col = ‘Data’, date_parser = dateparse)

      TypeError: strptime() argument 1 must be str, not numpy.ndarray

      During handling of the above exception, another exception occurred:

      ValueError Traceback (most recent call last)
      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in converter(*date_cols)
      3366 return tools.to_datetime(
      -> 3367 parsing.try_parse_dates(
      3368 parsing.concat_date_cols(date_cols),

      pandas\_libs\tslibs\parsing.pyx in pandas._libs.tslibs.parsing.try_parse_dates()

      <ipython-input-8-21945fdda994> in <lambda>(dates)
      —-> 1 dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)
      2 dataset = pd.read_csv(‘base_ligacoes.csv’, parse_dates = [‘Data’], index_col = ‘Data’, date_parser = dateparse)

      ~\anaconda3\lib\_strptime.py in _strptime_datetime(cls, data_string, format)
      567 format string.”””
      –> 568 tt, fraction, gmtoff_fraction = _strptime(data_string, format)
      569 tzname, gmtoff = tt[-2:]

      ~\anaconda3\lib\_strptime.py in _strptime(data_string, format)
      348 if not found:
      –> 349 raise ValueError(“time data %r does not match format %r” %
      350 (data_string, format))

      ValueError: time data ‘1/2/2021’ does not match format ‘%d-%m-%y’

      During handling of the above exception, another exception occurred:

      ValueError Traceback (most recent call last)
      <ipython-input-8-21945fdda994> in <module>
      1 dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)
      —-> 2 dataset = pd.read_csv(‘base_ligacoes.csv’, parse_dates = [‘Data’], index_col = ‘Data’, date_parser = dateparse)

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in read_csv(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, dialect, error_bad_lines, warn_bad_lines, delim_whitespace, low_memory, memory_map, float_precision)
      684 )
      685
      –> 686 return _read(filepath_or_buffer, kwds)
      687
      688

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in _read(filepath_or_buffer, kwds)
      456
      457 try:
      –> 458 data = parser.read(nrows)
      459 finally:
      460 parser.close()

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
      1194 def read(self, nrows=None):
      1195 nrows = _validate_integer(“nrows”, nrows)
      -> 1196 ret = self._engine.read(nrows)
      1197
      1198 # May alter columns / col_dict

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in read(self, nrows)
      2229
      2230 names, data = self._do_date_conversions(names, data)
      -> 2231 index, names = self._make_index(data, alldata, names)
      2232
      2233 # maybe create a mi on the columns

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in _make_index(self, data, alldata, columns, indexnamerow)
      1675 elif not self._has_complex_date_col:
      1676 index = self._get_simple_index(alldata, columns)
      -> 1677 index = self._agg_index(index)
      1678 elif self._has_complex_date_col:
      1679 if not self._name_processed:

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in _agg_index(self, index, try_parse_dates)
      1752
      1753 if try_parse_dates and self._should_parse_dates(i):
      -> 1754 arr = self._date_conv(arr)
      1755
      1756 if self.na_filter:

      ~\anaconda3\lib\site-packages\pandas\io\parsers.py in converter(*date_cols)
      3373 )
      3374 except Exception:
      -> 3375 return generic_parser(date_parser, *date_cols)
      3376
      3377 return converter

      ~\anaconda3\lib\site-packages\pandas\io\date_converters.py in generic_parser(parse_func, *cols)
      36 for i in range(N):
      37 args = [c[i] for c in cols]
      —> 38 results[i] = parse_func(*args)
      39
      40 return results

      <ipython-input-8-21945fdda994> in <lambda>(dates)
      —-> 1 dateparse = lambda dates: pd.datetime.strptime(dates, ‘%d-%m-%y’)
      2 dataset = pd.read_csv(‘base_ligacoes.csv’, parse_dates = [‘Data’], index_col = ‘Data’, date_parser = dateparse)

      ~\anaconda3\lib\_strptime.py in _strptime_datetime(cls, data_string, format)
      566 “””Return a class cls instance based on the input string and the
      567 format string.”””
      –> 568 tt, fraction, gmtoff_fraction = _strptime(data_string, format)
      569 tzname, gmtoff = tt[-2:]
      570 args = tt[:6] + (fraction,)

      ~\anaconda3\lib\_strptime.py in _strptime(data_string, format)
      347 found = format_regex.match(data_string)
      348 if not found:
      –> 349 raise ValueError(“time data %r does not match format %r” %
      350 (data_string, format))
      351 if len(data_string) != found.end():

      ValueError: time data ‘1/2/2021’ does not match format ‘%d-%m-%y’ “.

      #28948
      dougtaleb
      Participante

        #28949
        dougtaleb
        Participante

          #28950
          dougtaleb
          Participante

            #28953
            Fábio Spak
            Participante

              Olá DougTaleb, esse erro ocorre porque você esta tentando converter uma string para o tipo date. Veja nessa discussão como resolver isso utilizando uma conversão de tipos.

              Não podemos fazer testes com códigos personalizados dos alunos.

              Fabio

              #28962
              dougtaleb
              Participante

                Olá, Fabio

                Fiz alguns teste, mas o erro persiste. O formato das datas estão em mês/dia/ano (Ex: “1/2/2021”, “1/4/2021”, “1/5/2021″,”2,307”) .

                Tentei alguns códigos, mas o erro persiste:

                • ” dataset[‘Data’] = pd.to_datetime(dataset[‘Data’], format=’%m-%d-%Y’) “

                Erro: ” ValueError: time data ‘1/2/2021’ does not match format ‘%m-%d-%Y’ (match)”

                • ” dataset[‘Data’] = pd.to_datetime(dataset[‘Data’], format=’%b-%d-%Y’)

                Erro: ” ValueError: time data ‘1/2/2021’ does not match format ‘%b-%d-%Y’ (match)”

                • ” dataset[‘Data’] = pd.to_datetime(dataset[‘Data’], format=’%b-%d-%YYYY’) “

                Erro: “ValueError: time data ‘1/2/2021’ does not match format ‘%b-%d-%YYYY’ (match)”

                 

                 

                 

                 

                #28965
                Fábio Spak
                Participante

                  Olá Dougtaleb, verifique novamente o link que lhe passei. Infelizmente não conseguimos dar suporte ou ajudar detalhadamente com implementações personalizadas 🙁 Como a demanda no fórum é muito grande, não nos sobra tempo para avaliar/implementar/testar códigos personalizados que fogem das implementações disponíveis no curso. O que podemos fazer é dar algumas dicas e direcionamento de implementações como realizei na pergunta anterior.

                  Fabio

                  #28967
                  dougtaleb
                  Participante

                    Olá, Fabio

                    Entendo perfeitamente e obrigado pela disposição e ajuda; mas de qualquer forma, consegui resolver; eu basicamente ajustei formato de data,  deixei no formato ano-mes-dia; tal como é usado na língua inglesa nos EUA; que é a base do Python (ao menos pelo que pesquisei); e acabou dando certo. Recentemente comprei alguns livros para me aprofundar ainda mais.

                    #28968
                    Fábio Spak
                    Participante

                      Olá Dougtaleb, que bom que deu certo 😉

                      Fabio

                    Visualizando 9 posts - 1 até 9 (de 9 do total)
                    • Você deve fazer login para responder a este tópico.