2
respostas

Erro na importação de arquivo excel para o python, indexando data %m%d%y %H:%M:%S

Estou com um arquivo Excel com algumas colunas e a primeira delas contém a informação "Mês/Dia/Ano Hora:Min:Seg" ... Entretanto, apenas um pequeno intervalo está fora do padrão, tendo um ZERO na frente do mês, ficando "08/01/2021 00:00:00" invés de ficar "8/1/2021 00:00:00" usei a seguinte expressão para indexiar essa coluna no python.

data.index = pd.to_datetime(data[['MONTH','DAY','YEAR','HOUR','MINUTE','SECOND']])

So que recebo o erro: ValueError: cannot assemble the datetimes: time data '0' does not match format '%Y%m%d' (match)

Excel não deixa formatar as células diferentes.

2 respostas

Olá Patrick, tudo bem ? Espero que sim.

Não consegui reproduzir o erro que você está tendo, poderia me passar algumas informações para eu conseguir ajudar ?

  • Um print do seus dados (No excel e no Pandas);
  • O código que você criou até agora;

Fiz um código para simular seus dados.

Código:

import pandas as pd

dados = {'MONTH': ['01','02','03','04','05'],
         'DAY': ['8','9','15','27','31'],
         'YEAR': ['2009','2012','2013','2017', '2020'],
         'HOUR': ['1','1','1','2','2'],
         'MINUTE': ['30', '30', '30', '40', '40'],
         'SECOND': ['0','0','0','5','5']}

data = pd.DataFrame(dados)
data

Resultado:

MONTHDAYYEARHOURMINUTESECOND
001820091300
102920121300
2031520131300
3042720172405
4053120202405

E depois utilizei o seu código para criar o index e fazer a transformação das colunas para datetime:

Código:

data.index = pd.to_datetime(data[['MONTH','DAY','YEAR','HOUR','MINUTE','SECOND']])
data

Resultado:

MONTHDAYYEARHOURMINUTESECOND
2009-01-08 01:30:0001820091300
2012-02-09 01:30:0002920121300
2013-03-15 01:30:00031520131300
2017-04-27 02:40:05042720172405
2020-05-31 02:40:05053120202405

É esse o resultado que você quer obter ?

Fico no aguardo do seu retorno, bons estudos.

Igor peço perdão por não responde-lo. Eu acabei conseguindo achar a solução, exportei os dados em um outro formato e reescrevi o código.

Mas acredito que essa forma que vocês descreveu não ia ter sucesso. Meu problema era as horas datas que estavam como zero, ele não compreendia qual mês que era e dava erro.

De qualquer forma agradeço demais a atenção.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software