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.
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)
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()
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 |
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')
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.