Como manipular data e hora em análise de dados com Pandas?
O tempo é um uma perspectiva muito importante ao se realizar uma análise de dados.
Dependendo do recorte do conjunto de dados, pode ser que ele não esteja disponível como dado para você analisar, mas provavelmente estará lá de forma implícita.
Mas e se ele estiver disponível?
Você realizará análises por:
Ano?
Mês?
Dia ?
Hora?
Minutos?
Tudo junto?
Não sei e nem você sabe, porque… depende.
Mas o Pandas do Python tem algumas ferramentas para te ajudar a manipular data e hora.
Neste texto irei trazer algumas formas de se manipular data e hora com o Pandas.
Bora lá?!
Sumário
Datetime
DATE
YEAR
MONTH e MONTH_NAME
DAY e DAY_NAME
HOUR
Explorando ainda mais…
Datetime
Vamos começar a analisar os dados deste dataset, nele contém pedidos de restaurantes.
Mas esses nomes de colunas não estão legais.
Vou mudar:
Agora sim!
Bom vamos ao primeiro:
Ele irá retornar uma Series com objetos datetime.date nativo lá do Python.
Vamos passar na nossa data:
O tipo de dado não era uma data:
Mas então uso o pd.to_datetime()
Agora com o tipo de dado ok, podemos seguir.
DATE
Quero analisar a quantidade de pedidos feitos neste restaurante.
Faço uma cópia e um recorte dos dados:
Só que observe que cada linha não é um pedido, mas sim um tipo de item de cada pedido:
Mas aí é só excluir os valores duplicados:
Vamos contar:
Mas preciso agrupar pelos pedidos, somar e ordenar do maior para o menor:
Hum… Mas essa data do pedido está muito específica né?
Horas e minutos.
Vamos usar o Series.dt.date aqui.
Trabsformarei a coluna:
E…
Agora conseguimos ver a quantidade de pedidos por dia!
Ainda poderia utilizar o .to_frame() e transformar em um DataFrame já com o nome da coluna.
YEAR
Mas e se quisesse entender por ano?
Uso agora o dt.year
Fácil né?!
MONTH e MONTH_NAME
Tudo bem… Mas o problema é entender qual é o mês que mais vende de 2015 a 2019.
Como fazer?
Pronto!
Francisco, tá estranho esse data_pedido aí.
Só renomear a coluna do índice:
Julho e maio são os meses que mais vendem de acordo com os dados desses anos.
Mas Francisco, eu quero ver o nome dos meses ao invés de um número.
Usa então o dt.month_name()
DAY e DAY_NAME
Para o dia você usar o dt.day:
Ou se quiser o nome, o dt.day_name()
Mas eu coloquei dia, quantidade e… estou escrevendo os nomes dos dias em inglês?
Escolhe um ou outro né?!
Crio um dicionário e uso o .map() (você pode ler mais sobre esta ele aqui) para fazer a troca.
HOUR
Agora se caso quiser saber qual é o horário de pico do restaurante:
Verifique pelas horas.
Use o dt.hour
Entre 17 e 20 horas é o horário de maior pico de pedidos no restaurante.
Legal né?!
Explorando ainda mais…
Bom… esses foram algumas formas de se trabalhar com data e horas para analisar dados com o Pandas.
Entretanto ele te dá muito mais:
Explore a documentação do Pandas.
Aprenda um pouquinho a cada dia, que depois de um tempo você terá aprendido MUITO mais.
E isso não é apenas uma dica minha, mas sim uma dica de um programador com mais de 30 anos de experiência:
Esse vídeo faz parte de uma série muito legal. Se você está curtindo aprender programação, não deixe conferir a playlist completa dessa série aqui.
Agora me diga, quais desafios você já teve manipulando data e hora ? Compartilhe nos comentários.
Se você chegou até aqui e curtiu, dê palmas, compartilhe e se inscreva para me acompanhar.
Ainda há muito a se explorar…