2
respostas

Cálculo da duração

Eu tenho um dataframe da seguinte forma

[        Origem  Destino Tempo_destino Tempo_origem  Quantidade
6       262266   262220      23:25:22     13:40:53           1
11      262275   262243      23:59:10     23:56:25           1
13      162261   162262      19:27:09     00:48:28           1
14      162267   162266      21:43:26     20:33:05           1
15      162207   162204      23:43:42     18:02:31           1

Com uso o pandas para calcular a diferença ente o tempo de destino e tempo de origem ?. ou seja a duração entre um ponto de origem e um ponto de destino ?

2 respostas

a saída deverá ser a criação de mais uma coluna no dataframe.

Olá Luciana! Tudo certinho?

Peço desculpas pela demora em te dar um retorno.

Utilizando o seu dataframe eu consegui calcular a diferença entre a data de destino e de origem da seguinte forma:

tempo_destino = [hora for hora in dados['Tempo_destino']] # armazenando os dados  da coluna Tempo_destino em uma lista
tempo_origem = [hora for hora in dados['Tempo_origem']] # armazenando os dados  da coluna Tempo_origem em uma lista

format = '%H:%M:%S' # definindo o formato das horas (hora-minuto-segundo)
duracao = [] # criando uma lista para armazenar a duração

for i in range(dados.shape[0]):

  # fazendo a diferença das horas de destino e origem e salvando na lista duracao
  duracao.append((datetime.strptime(tempo_destino[i], format) - datetime.strptime(tempo_origem[i], format)))


# criando uma coluna chamada "Duração" e salvando os dados da lista duracao nela
dados['Duração'] = duracao
dados

O código está comentado explicando cada etapa com maior detalhes. Mas, primeiramente eu salvei os dados das colunas Tempo_origem e Tempo_destino em listas separadas. Depois, o que eu fiz foi criar um laço for que percorria a quantidade de linhas do seu dataframe e nesse laço, por meio do método strptime da biblioteca datetime eu realizei a conversão de cada uma das suas datas para o tipo datetime, para que assim, fosse possível obter a diferença na quantidade de horas-minutos-segundos.

Após salvar essa diferença em uma lista, foi criada uma coluna chamada "Duração" e os valores da lista foram passado para essa coluna, resultando no seguinte dataframe:

Imagem do dataframe resultante. Esse dataframe é igual ao postado pela aluno no tópico com uma coluna a mais chamada "Duração" que foi criada pelo código ensinado nesse tópico

Qualquer dúvida estou a disposição :)

Bons estudos!

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