Pandas Série Tempo

Pandas Série Tempo

Muitas séries temporais têm uma frequência definida, o que significa que seus pontos de dados são divididos em intervalos fixos como cada minuto, todos os dias ou toda semana. Intervalos inconsistentes também podem estar presentes na série temporal. Uma data representada como o tempo pode fazer parte de uma série temporal de dados. Exemplos de registro de data e hora incluem uma data como 07 de agosto de 2022, às 12:00. Uma série temporal em Python é uma série/coleção de pontos de dados em que cada um tem um registro de data e hora associado a ele. No mercado de ações, o preço das ações em momentos diferentes durante o dia é um exemplo realista. Embora as séries temporais também sejam oferecidas pela Sci-Kit-Learn, os pandas fornecem uma coleção de vários recursos. Podemos adicionar a hora e a data de cada registro neste módulo Pandas e obter os registros de dados de dados. Usando o módulo de série temporal do Pandas, podemos descobrir os dados para uma gama específica de datas e horários. Para explicar a análise de séries temporais em pandas, vamos falar sobre vários objetivos principais.

Análise de série temporal Objetivos principais

  • Criando a série Data
  • Trabalhando com o registro de data e hora
  • Valores/dados da string para conversão de registro de data e hora
  • fatia de dados usando um registro de data e hora por diferentes períodos, reamostra a série temporal
  • Determinar os agregados ou estatísticas de resumo
  • Manuseio de dados com valores ausentes

Por que os pandas para análise de séries temporais?

Embora a Biblioteca Pandas tenha muitos recursos úteis, o Python oferece módulos como o DateTime que executa operações em dados como datas e horários. Esses módulos são usados ​​com mais frequência para processar dados de séries temporais. Além disso, para análise de séries temporais, os pandas mantêm o relacionamento entre as bibliotecas. Quando os dados estão no registro de data e hora, os recursos da série temporal dos pandas são bastante úteis. O DateTime do Python é equivalente ao registro de data e hora em pandas. É usado para entradas DateTimeIndex e outras estruturas de dados do Pandas Timesseries. A estrutura da série, indexada pelo timestamp, é a estrutura mais básica da série temporal.

Como criar uma série temporal básica de pandas

Para criar uma série temporal simples, primeiro importaremos os módulos ou bibliotecas necessários, como pandas, numpy e datetime. Hora e data não são tipos de dados separados no Python, mas eles podem ser tratados usando o módulo DateTime, que pode ser importado. Não há necessidade de instalar o módulo Python DateTime do lado de fora, porque já está incluído no Python. O módulo Python DateTime oferece aulas para trabalhar com data e hora. Nos pandas, manipularemos as séries temporais seguindo os objetivos mencionados de analisar a série temporal.

Vamos criar uma lista contendo os objetos DATETIME.

Agora, criaremos uma série usando esta lista que contém os valores de DateTime. Usaremos os valores da data como o índice de nosso objeto de série.

Especificamos o índice para série usando o parâmetro de índice dentro da função Série (). Ao extrair o índice da série, podemos determinar seu tipo.

Como pode ser visto, a estrutura de dados de índice da variável é um datatimeindex.

Convertendo valores de string ou dados em registro de data e hora

Os valores de data ou hora podem ser convertidos para diferentes estruturas de dados de séries temporais. Três estruturas de dados diferentes podem ser usadas para manipular as séries temporais, eu.e., TIMESTAMPS, estrutura do período e estrutura timedelta. Os objetos DATETIMEIndex e Welamp Samps são os mais comuns dessas estruturas. O método to_dateTime () pode converter uma data ou série específica de datas em registro de data e hora.

A função converteu o valor da data da string em registro de data e hora. Diferentes formatos de data podem ser convertidos em objetos DateTimeIndex usando a função to_dateTime ().

Passamos os dados da data em quatro formatos diferentes dentro de uma lista, eu.e., [DateTime (2022,6,8), "7 de agosto de 2022", "2022-junho-13", "20220406"]. Como você pode notar, a função converteu com sucesso cada formato no objeto DatTimeIndex. Também podemos alterar a estrutura de dados da série temporal. Para adicionar códigos de frequência, você pode alterar o DateTimeIndex no PeriodIndex usando o método to_period (). O valor "D", por exemplo, representa uma frequência diária.

As datas também podem ser subtraídas para determinar os dias entre eles.

Subtraímos todas as datas da data no índice 0. Um objeto TimedelTaindex é retornado, mostrando os resultados como uma lista contendo o número de dias após subtrair cada data com a data no índice 0.

Usando a função date_range para criar uma série temporal

Uma série de data pode ser criada usando várias funções em pandas. Para registros de data e hora, podemos usar o date_range (). Por período, o period_range () e o timedelta_range () para criar dados de tempo delta. A função date_range () receberá um DateTimeIndex com uma frequência especificada. O método date_range () requer a data de início e a data de término.

Além disso, você pode usar o parâmetro de período dentro do date_range (). Você só precisa especificar a data de início para realizar isso. A função retornará os dados para o período e a frequência especificados. O parâmetro FREQ também pode ser usado ao criar uma série temporal usando o date_range (). A frequência padrão do método de intervalo de data é diária. Podemos usar o valor "H", que significa a hora, para obter a frequência como horas.

Fatia de dados usando um registro de data e hora

Primeiro criaremos um DataFrame usando o PD.Função de DataFrame e o índice será especificado como DateTimeIndex.

Primeiro, criamos uma série temporal e depois a especificamos como o índice de nosso quadro de dados. Para extrair as datas entre duas datas de séries temporais, usaremos o operador de fatia.

Embora o quadro de dados básico que criamos contém dados com uma frequência diária, podemos rerampler os dados e selecionar como calcular a estatística agregada para a frequência especificada. Em vez de calcular os dados em uma frequência diária, podemos calcular os dados em uma frequência mensal.

Encontrando estatísticas de resumo

Adicione uma nova coluna em nosso quadro de dados original, calculando a soma rolante durante um período de duas janelas. Podemos usar as estatísticas da janela rolante para analisar e suavizar dados de séries temporais. Para gerar uma janela rolante sobre a coluna DataFrame, usaremos o método rolling (). Então a função soma () será usada para obter a soma rolante.

Uma nova coluna “roll_sum” foi criada contendo os valores de soma rolante das janelas especificadas, i.e., 2.

Lidar com valores ausentes

Como pode ser observado, a coluna da soma do rolo tem um valor ausente na primeira linha. Podemos encaminhar ou preencher os dados ao lidar com os valores de dados ausentes. Criaremos uma nova coluna usando os valores da soma rolante para atingir os dados.

Afimimos o valor que faltava usando a função Fillna () e usamos o parâmetro do método dentro da função. É útil substituir dados nulos por valores realistas, como a média de um período. No entanto, lembre -se de que, se você estiver lidando com uma série temporal e deseja que suas estatísticas sejam realistas, não deve preencher seus dados, porque isso seria o equivalente a fazer uma previsão e obter as informações que você não teria nisso período.

Conclusão

Neste artigo, discutimos as séries temporais em pandas. Discutimos o que são as séries temporais, quais são os principais objetivos da análise de séries temporais e por que usamos pandas para séries temporais. Neste post, demonstramos como realizar manipulação simples, como criar uma série temporal simples, fatiamento de dados usando um registro de data e hora, encontrar estatísticas de resumo e lidar com valores ausentes.