Lidando com datas no Python: as bibliotecas time e datetime

Trabalhar com datas em uma computador pode ser algumas vezes complicado, visto a vasta quantidade detalhes que essa área oferece. Apesar disso, é possível descomplicar totalmente essa questão através de duas bibliotecas do Python: time e datetime. No post de hoje, iremos ensinar alguns pontos importantes sobre tempo e data no Python, bem como realizaremos exemplo com as duas bibliotecas.

Tipos de datas

No Python, podemos definir os tipos de dados para datas para os seguintes:

  • data: armazena uma data de calendário
  • time: armazena a hora do dia na forma de horas, minutos, segundos e microssegundos
  • datetime: armazena data e hora
  • timedelta: diferença entre dois valores de datas
  • tzinfo: fuso horário (time zone)

Para especificação de formatos de datas, é comum usar o padrão %Y para ano com quatro dígitos, %m para mês com dois dígitos e %d para dia com dois dígitos, formando o padrão %Y-%m-%d, comum para a importação de diversos dados em séries temporais ao redor do mundo. Ainda é possível que seja adicionado %H, que representa as horas em formato de 24h.

Existem diversos outros formatos para anos, meses, dias e horas, seguindo a lista abaixo:

ano

  • %y: ano de dois dígitos (22)
  • %Y: ano de quatro dígitos (2022)

mês

  • %b: Mês abreviado (Mar)
  • %B: Nomes completos de meses (March)
  • %m: Mês como número (03 ou 3)

dia

  • %d: Dia do mês (30)

dia da semana

  • %a: Nome abreviado (Wed)
  • %A: Nome completo
  • %w: número (3 - Sunday sempre como 0 até Saturday como 6)

horas

  • %H: 24 horas (00 até 23)
  • %I: 12 horas (01 até 12)
  • %M: minutos (01 até 59)

segundos

  • %S: segundos de 00 até 59

AM/PM

  • %p: utilizado junto com horas em formatos de 12 horas

Feito a introdução, podemos prosseguir com as bibliotecas e suas respectivas funções.

Time

A biblioteca time oferece ao usuário mecanismos de obter os valores do tempo no Python. O chamado tipo de dado timestamp, que são instantes específicos no tempo. Além também de calcular o tempo de processamento de um iteração ou função, útil para que aqueles que necessitam comparar tempos de resposta de modelos, de forma que se possa otimizar o trabalho e reduzir custos.

Construímos um vetor de tempo através do módulo locatime(), com o formato de struct_time, contendo todas as informações do momentos atual em formato de horas, dias, semanas, mês, anos, etc. É possível transformar esse tipo de dado com o módulo asctime, tornando-o mais interessante.

Através do código abaixo, podemos calcular o tempo de processamento do for construído. Vejam que realizamos através da diferença de contagem de dois objetos de data, resultando em um dado do tipo timedelta.

Datetime

A biblioteca datetime oferece uma gama de ferramentas para a criação e manipulação de séries no tempo para data frame. O seu uso em conjunto com o pandas os torna poderosos, de forma que aqueles que lidam com séries temporais podem se beneficiar.

Construímos um objeto do tipo datetime com a data de interesse através de datetime(). Veja que criamos um objeto com o dia atual, mas também podemos realizar com outras datas.

Para construir um objeto do tipo datetime com o momento atual, utilizamos os módulo now(), que retorna esse dado.

Se quisermos realizar transformações de datas, utilizamos strptime que passando o objeto de strings, e o formato que queremos, geramos um objeto datetime.

Também é possível construir essa transformação com objeto date time de formato numérico, utilizando strftime, porém com outro formato.

Por fim, podemos realizar comparações lógicas com as datas, além também de realizar operações númericas, sendo o mais comum o timedelta, que nos retorna a diferença entre duas datas.

Apesar de simples o contexto do datetime, a biblioteca é extremamente útil com o pandas, oferecendo um grande ferramental para manipulação de séries no tempo, como mudanças do índice, frequências e intervalos de datas, operações, entre outros.

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como Construir um Monitor de Política Monetária Automatizado com Python?

Descubra como transformar dados do Banco Central em inteligência de mercado com um Monitor de Política Monetária Automatizado. Neste artigo, exploramos o desenvolvimento de uma solução híbrida (Python + R) que integra análise de sentimento das atas do COPOM, cálculo da Regra de Taylor e monitoramento da taxa Selic. Aprenda a estruturar pipelines ETL eficientes e a visualizar insights econômicos em tempo real através de um dashboard interativo criado com Shiny, elevando o nível das suas decisões de investimento.

Qual o efeito de um choque de juros sobre a inadimplência?

Neste exercício, exploramos a relação dinâmica entre o custo do crédito (juros na ponta) e o risco realizado (taxa de inadimplência) através de uma análise exploratória de dados e modelagem econométrica utilizando a linguagem de programação R.

Qual a relação entre benefícios sociais e a taxa de participação do mercado de trabalho?

Este exercício apresenta uma investigação econométrica sobre a persistente estagnação da taxa de participação no mercado de trabalho brasileiro no período pós-pandemia. Utilizando a linguagem R e dados públicos do IBGE e Banco Central, construímos um modelo de regressão linear múltipla com correção de erros robustos (Newey-West). A análise testa a hipótese de que o aumento real das transferências de renda (Bolsa Família/Auxílio Brasil) elevou o salário de reserva, desincentivando o retorno à força de trabalho.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.