Untitled

 avatar
unknown
plain_text
15 days ago
2.0 kB
1
Indexable
    def query(self, scope):
        cube = self.catalog.get_cube("Limits_Cube")
        dfs = []
        for sens_name in SENS_NAME_INCLUDED.keys():
            df = cube.query(
                cube.measures['Trigger Value'],
                cube.measures[DAILY_LIQUIDITY + " Triggers"],
                cube.measures[TRIGGER_CONSUMPTION_DAILY],
                filter=(cube.levels["AsOfDate"] == scope['AsOfDate']) &
                       (cube.levels["SensitivityName"].isin(*SENS_NAME_INCLUDED[sens_name])),
                levels=[
                    cube.levels["AsOfDate"],
                    cube.levels["TriggerGrouping2"],
                    cube.levels["Tenor_Triggers"],
                ]
            ).reset_index()

            print(f"Forma del DataFrame antes del rename: {df.shape}")
            print(df.head())  # Mostrar los primeros registros

            if df.empty:
                print(f"⚠️ Advertencia: No se encontraron datos para {sens_name}")
                continue

            # Renombrar columnas
            df = df.rename(columns={
                'Trigger Value': "TRIGGER",
                DAILY_LIQUIDITY + " Triggers": "DAILY LIQUIDITY",
                TRIGGER_CONSUMPTION_DAILY: "CONSUMPTION"
            })

            df = df.rename(columns={
                "AsOfDate": "FECHA",
                "TriggerGrouping2": "SUBYACENTE",
                "Tenor_Triggers": "PLAZO",
            })

            # Agregar factor y griega
            df["FACTOR"], df["GRIEGA"] = sens_name.split(' ')
            dfs.append(df)

        # ✅ 6. Verificar si hay datos antes de concatenar
        if not dfs:
            print("⚠️ Advertencia: Ningún DataFrame con datos, input_df estará vacío.")
        else:
            self.input_df = pd.concat(dfs, axis=0)
            print(f"Tamaño de input_df final: {self.input_df.shape}")
            print(self.input_df.head())  # Mostrar primeros datos
Leave a Comment