Detectar inconsistências em séries temporais é fundamental para garantir a qualidade dos dados e a precisão das análises. Com um script automatizado, você pode identificar rapidamente valores ausentes, duplicados, outliers e problemas de ordem cronológica, economizando horas de trabalho manual e evitando erros que podem comprometer todo o projeto.
pip install pandas numpy)Comece importando as bibliotecas necessárias e carregando seu arquivo de dados. O script abaixo lê um arquivo CSV e converte a coluna de data para o formato datetime.
import pandas as pd
import numpy as np
# Carregar arquivo CSV
df = pd.read_csv('dados.csv')
# Converter coluna 'data' para datetime
df['data'] = pd.to_datetime(df['data'], errors='coerce')
# Definir 'data' como índice
df.set_index('data', inplace=True)
print("Dados carregados com sucesso!")
print(df.head())
Verifique se há registros faltantes ou datas repetidas, que são inconsistências comuns em séries temporais.
# Verificar valores ausentes
missing = df.isnull().sum()
print("\nValores ausentes por coluna:")
print(missing)
# Detectar duplicados
duplicates = df[df.index.duplicated()]
print("\nRegistros duplicados:")
print(duplicates)
Outliers podem indicar erros de medição, enquanto intervalos irregulares podem revelar dados perdidos. Use o método IQR para detectar outliers e verifique a regularidade dos intervalos.
# Detectar outliers (método IQR)
Q1 = df['valor'].quantile(0.25)
Q3 = df['valor'].quantile(0.75)
IQR = Q3 - Q1
outliers = df[(df['valor'] < (Q1 - 1.5 * IQR)) | (df['valor'] > (Q3 + 1.5 * IQR))]
print("\nOutliers detectados:")
print(outliers)
# Verificar intervalos regulares
df = df.asfreq('D') # Amostragem diária
gaps = df[df.isna().any(axis=1)]
print("\nIntervalos com dados ausentes:")
print(gaps)
Compile todas as inconsistências encontradas em um relatório claro e exporte para um arquivo CSV para análise posterior.
# Relatório de inconsistências
report = pd.DataFrame({
'tipo': ['missing', 'duplicates', 'outliers'],
'count': [missing.sum(), len(duplicates), len(outliers)]
})
report.to_csv('relatorio_inconsistencias.csv', index=False)
print("\nRelatório salvo em 'relatorio_inconsistencias.csv'")
| Data | Valor | Status |
|---|---|---|
| 2024-01-01 | 100 | OK |
| 2024-01-02 | NaN | Faltante |
| 2024-01-03 | 100 | Duplicado |
| 2024-01-05 | 200 | Gap |
| 2024-01-06 | 5000 | Outlier |
Com este script, você automatiza a detecção de inconsistências em séries temporais em questão de segundos, garantindo a integridade dos dados e a confiabilidade das suas análises. Basta ajustar as colunas e frequência de acordo com seu dataset, e o script fará o resto.