Filters
Fornece métodos estáticos para filtrar e processar dados contidos em DataFrames do Pandas, especificamente para dados hidrológicos.
Índice
Visão Geral
A classe DataFilter é dedicada à manipulação e filtragem de DataFrames, oferecendo funcionalidades para:
- Filtragem por Período: Permite filtrar dados com base em anos, meses ou janelas de tempo específicas, incluindo deltas de dias para ajustar os limites.
- Filtragem por Hora: Possibilita a seleção de dados com base em horas específicas do dia.
- Cálculo de Média: Inclui a opção de calcular a média diária dos dados filtrados, útil para análises resumidas.
- Métodos Estáticos: Todos os métodos são estáticos, o que significa que podem ser chamados diretamente da classe sem a necessidade de instanciá-la, tornando-a uma ferramenta utilitária eficiente para processamento de dados.
Data filter
Classe que define métodos para filtrar dados de um Pandas Dataframe.
Filtrar dados
Filtra os dados do DataFrame com base no tipo de filtro (ano, mês, ambos) e na data base,aplicando também a filtragem por horas específicas se fornecido. Calcula a média diária geral se solicitado.
Parâmetros:
dataframe (pd.DataFrame): O DataFrame a ser filtrado.
date (datetime): A data base para extrair o ano e o mês de referência para a filtragem.
horas (Optional[List[int]]): Uma lista opcional de horas para filtrar os dados. Se None, não aplica filtro por hora.
delta_dias (int | tuple): O número de dias antes e depois da data base para incluir no filtro. Pode ser um int (aplicado simetricamente) ou uma tuple (delta_antes, delta_depois).
media (bool): Se True, calcula a média diária geral dos dados filtrados.
Returns:
Dict[str, Dict[Union[int, str], pd.DataFrame]]: Um dicionário contendo DataFrames filtrados por tipo (ano, mês) e, se solicitado, a média diária geral.
Filtrar por ano
Filtra os dados fornecidos com base em um determinado ano.
Parâmetros:
dataframe (pd.DataFrame): O DataFrame a ser filtrado.
year (int): O ano de referência para a filtragem.
delta_antes (int): Número de dias para incluir no filtro antes do primeiro dia do ano.
delta_depois (int): Número de dias para incluir no filtro depois do último dia do ano.
Returns:
pd.DataFrame: O DataFrame com os dados filtrados por ano e manipulados pelas datas.
Filtrar por mês
Filtra os dados fornecidos com base em um mês e um ano fornecidos.
Parâmetros:
dataframe (pd.DataFrame): O DataFrame a ser filtrado.
year (int): O ano de referência para a filtragem.
month (int): O mês de referência para a filtragem.
delta_antes (int): Número de dias para incluir no filtro antes do primeiro dia do mês.
delta_depois (int): Número de dias para incluir no filtro depois do último dia do mês.
Returns:
pd.DataFrame: O DataFrame com os dados filtrados por mês e manipulados pelas datas.
Filtrar por janela
Cria filtros baseados em dias de início e final junto com uma banda de dias excedentes.
Parâmetros:
dataframe (pd.DataFrame): O DataFrame a ser filtrado.
date_start (datetime): O dia inicial da janela de filtragem.
date_end (datetime): O dia final da janela de filtragem.
horas (Optional[List[int]]): Uma lista opcional de horas para filtrar os dados. Se None, não aplica filtro por hora.
delta_dias (int): Número de dias antes e depois do intervalo filtrado para incluir.
media (bool): Se True, calcula a média diária geral dos dados filtrados.
Returns:
Dict[Union[int, str], pd.DataFrame]: Um dicionário contendo os DataFrames dentro da janela especificada.
Filtrar por hora
Filtra os dados do DataFrame com base nas horas especificadas e calcula a média diária geralse solicitado.
Parâmetros:
dataframe (pd.DataFrame): O DataFrame a ser filtrado.
horas (Optional[List[int]]): Uma lista opcional de horas para filtrar os dados. Se None, não aplica filtro por hora.
media (bool): Se True, calcula a média diária geral dos dados filtrados.
Returns:
Dict[Union[int, str], pd.DataFrame]: Um dicionário com DataFrames filtrados por hora e, se solicitado, a média diária geral.
Calcular média diária
Calcula a média diária dos dados combinados dos DataFrames filtrados.
Parâmetros:
dados (Dict[Union[str, int], pd.DataFrame]): Um dicionário de DataFrames filtrados por hora.
numeric_label (str): O nome da coluna numérica a ser utilizada para o cálculo da média.
Returns:
pd.DataFrame: Um DataFrame com a média diária calculada.