catbean.pages.dev

Como criar um script para gerar série temporal com intervalo personalizado?

Gerar séries temporais com intervalos específicos pode ser uma tarefa repetitiva e propensa a erros quando feita manualmente. Com um script personalizado, você automatiza o processo, garantindo precisão e economizando tempo, seja para análise de dados, previsões ou monitoramento de métricas.

Pré-requisitos

Passo 1: Criar o script Python

O primeiro passo é escrever um script que utilize a biblioteca pandas para gerar a série temporal. O script aceitará parâmetros como data inicial, data final e intervalo desejado (diário, semanal, mensal, etc.).

import pandas as pd
from datetime import datetime

def gerar_serie_temporal(data_inicio, data_fim, intervalo='D'):
    # Converter strings para datetime
    inicio = datetime.strptime(data_inicio, '%Y-%m-%d')
    fim = datetime.strptime(data_fim, '%Y-%m-%d')

    # Gerar a série temporal com o intervalo desejado
    if intervalo == 'D':
        freq = 'D'
    elif intervalo == 'W':
        freq = 'W-SUN'  # Semana começa no domingo
    elif intervalo == 'M':
        freq = 'MS'  # Início do mês
    else:
        raise ValueError("Intervalo deve ser 'D' (diário), 'W' (semanal) ou 'M' (mensal)")

    serie = pd.date_range(start=inicio, end=fim, freq=freq)
    return serie

# Exemplo de uso
if __name__ == "__main__":
    data_inicio = '2024-01-01'
    data_fim = '2024-01-07'
    intervalo = 'D'  # Diário
    serie = gerar_serie_temporal(data_inicio, data_fim, intervalo)
    print(serie)

Passo 2: Executar o script com parâmetros personalizados

Para usar o script com intervalos diferentes, basta modificar os parâmetros de data e intervalo. O script pode ser facilmente adaptado para receber argumentos via linha de comando, permitindo maior flexibilidade.

import argparse

def main():
    parser = argparse.ArgumentParser(description='Gerar série temporal com intervalo personalizado.')
    parser.add_argument('data_inicio', type=str, help='Data inicial no formato YYYY-MM-DD')
    parser.add_argument('data_fim', type=str, help='Data final no formato YYYY-MM-DD')
    parser.add_argument('intervalo', type=str, choices=['D', 'W', 'M'], help='Intervalo: D (diário), W (semanal), M (mensal)')
    args = parser.parse_args()

    serie = gerar_serie_temporal(args.data_inicio, args.data_fim, args.intervalo)
    print(serie)

if __name__ == "__main__":
    main()

Exemplo Prático

Veja abaixo um exemplo de como o script funciona com diferentes intervalos:

Data Início Data Fim Intervalo Resultado Esperado
2024-01-01 2024-01-07 D 2024-01-01, 2024-01-02, 2024-01-03, 2024-01-04, 2024-01-05, 2024-01-06, 2024-01-07
2024-01-01 2024-01-31 W 2024-01-01, 2024-01-08, 2024-01-15, 2024-01-22, 2024-01-29
2024-01-01 2024-03-01 M 2024-01-01, 2024-02-01, 2024-03-01

Passo 3: Salvar a série em um arquivo (opcional)

Se desejar, você pode modificar o script para salvar a série temporal em um arquivo CSV, facilitando o uso posterior em outras ferramentas ou análises.

def salvar_serie(serie, nome_arquivo='serie_temporal.csv'):
    df = pd.DataFrame(serie, columns=['data'])
    df.to_csv(nome_arquivo, index=False)
    print(f"Série salva em {nome_arquivo}")

# Exemplo de uso
if __name__ == "__main__":
    serie = gerar_serie_temporal('2024-01-01', '2024-01-07', 'D')
    salvar_serie(serie, 'serie_exemplo.csv')

Conclusão

Com este script, você automatiza a geração de séries temporais com intervalos personalizados em poucos segundos, eliminando erros manuais e aumentando sua produtividade. Basta ajustar as datas e o intervalo desejado para obter resultados precisos e prontos para análise.