Module pipelines.rj_cor.meteorologia.precipitacao_alertario.utils

Utils for precipitacao_alertario

Functions

def parse_date_columns(dataframe: pandas.core.frame.DataFrame, partition_date_column: str) ‑> Tuple[pandas.core.frame.DataFrame, List[str]]
Expand source code
def parse_date_columns(
    dataframe: pd.DataFrame, partition_date_column: str
) -> Tuple[pd.DataFrame, List[str]]:
    """
    Parses the date columns to the partition format. Reformatado para manter o formato utilizado
    quando os dados foram salvos pela primeira vez (ano, mes, dia).
    """
    ano_col = "ano"
    mes_col = "mes"
    data_col = "dia"
    cols = [ano_col, mes_col, data_col]
    for col in cols:
        if col in dataframe.columns:
            raise ValueError(f"Column {col} already exists, please review your model.")

    dataframe[partition_date_column] = dataframe[partition_date_column].astype(str)
    dataframe[data_col] = pd.to_datetime(
        dataframe[partition_date_column], errors="coerce"
    )

    dataframe[ano_col] = (
        dataframe[data_col]
        .dt.year.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    dataframe[mes_col] = (
        dataframe[data_col]
        .dt.month.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    dataframe[data_col] = (
        dataframe[data_col]
        .dt.day.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    return dataframe, [ano_col, mes_col, data_col]

Parses the date columns to the partition format. Reformatado para manter o formato utilizado quando os dados foram salvos pela primeira vez (ano, mes, dia).

def parse_date_columns_old_api(dataframe: pandas.core.frame.DataFrame, partition_date_column: str) ‑> Tuple[pandas.core.frame.DataFrame, List[str]]
Expand source code
def parse_date_columns_old_api(
    dataframe: pd.DataFrame, partition_date_column: str
) -> Tuple[pd.DataFrame, List[str]]:
    """
    Parses the date columns to the partition format. Reformatado para manter o formato utilizado
    quando os dados foram salvos pela primeira vez (ano, mes, dia).
    """
    ano_col = "ano"
    mes_col = "mes"
    data_col = "dia"
    cols = [ano_col, mes_col, data_col]
    for col in cols:
        if col in dataframe.columns:
            raise ValueError(f"Column {col} already exists, please review your model.")

    dataframe[partition_date_column] = dataframe[partition_date_column].astype(str)
    dataframe[data_col] = pd.to_datetime(
        dataframe[partition_date_column], errors="coerce"
    )

    dataframe[ano_col] = (
        dataframe[data_col]
        .dt.year.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    dataframe[mes_col] = (
        dataframe[data_col]
        .dt.month.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    dataframe[data_col] = (
        dataframe[data_col]
        .dt.day.fillna(-1)
        .astype(int)
        .astype(str)
        .replace("-1", np.nan)
    )

    return dataframe, [ano_col, mes_col, data_col]

Parses the date columns to the partition format. Reformatado para manter o formato utilizado quando os dados foram salvos pela primeira vez (ano, mes, dia).

def treat_date_col(row)
Expand source code
def treat_date_col(row):
    """
    Add zero hour if date cames without it
    """
    if len(row) == 10:
        row = row + " 00:00:00"
    return row

Add zero hour if date cames without it