示例#1
0
文件: ops.py 项目: rxavier/econuy
def _load(data_loc: Union[str, PathLike,
                          Connection, Engine],
          multiindex=True,
          table_name: Optional[str] = None):
    """Load existing data from CSV or SQL."""
    try:
        if isinstance(data_loc, (Engine, Connection)):
            if multiindex is True:
                previous_data = sqlutil.read(con=data_loc,
                                             table_name=table_name)
            else:
                previous_data = pd.read_sql(sql=table_name,
                                            con=data_loc,
                                            index_col="index",
                                            parse_dates="index")
        else:
            if multiindex is True:
                previous_data = pd.read_csv(data_loc, index_col=0,
                                            parse_dates=True,
                                            header=list(range(9)),
                                            float_precision="high")
                metadata._set(previous_data)
            else:
                previous_data = pd.read_csv(data_loc, index_col=0,
                                            parse_dates=True,
                                            float_precision="high")
    except (ProgrammingError, OperationalError, FileNotFoundError):
        print("Data does not exist. No data will be updated")
        previous_data = pd.DataFrame()

    return previous_data
示例#2
0
 def indicator_options(table):
     if not table:
         raise PreventUpdate
     df = sqlutil.read(con=db.engine, table_name=table)
     columns = df.columns.get_level_values(0)
     return (
         [{"label": "Todos los indicadores", "value": "*"}]
         + [{"label": v, "value": v} for v in columns]
     ), False
示例#3
0
def test_sqlutil():
    remove_clutter()
    sqlutil.read(con=TEST_CON, command='SELECT * FROM nxr_daily')
    sqlutil.read(con=TEST_CON, table_name="nxr_daily",
                 start_date="2011-01-14",
                 end_date="2012-01-15")
    sqlutil.read(con=TEST_CON, table_name="nxr_daily",
                 start_date="2011-01-14")
    sqlutil.read(con=TEST_CON, table_name="reserves_changes",
                 end_date="2012-01-01",
                 cols=["1. Compras netas de moneda extranjera"])
示例#4
0
 def store_query_data(table, indicator):
     if not table or not indicator:
         return {}, {}
     if "*" in indicator:
         indicator = "*"
     data = sqlutil.read(con=db.engine, table_name=table, cols=indicator)
     metadata = data.columns.to_frame()
     data.columns = data.columns.get_level_values(0)
     data.reset_index(inplace=True)
     return data.to_dict("records"), metadata.to_dict("records")
示例#5
0
    def build_labor_rates(start, end):
        p = Pipeline(location=db.engine, download=False)
        p.get("labor_rates_people")
        nsa = p.dataset
        nsa.columns = nsa.columns.get_level_values(0)
        trends = sqlutil.read(con=db.engine,
                              table_name="labor_rates_people_seas")
        trends.columns = trends.columns.get_level_values(0) + [
            " (tendencia-ciclo)"
        ]
        data = pd.concat([nsa, trends], axis=1)
        activity_employment_plot = build_chart(
            data,
            title="Actividad y empleo",
            subtitle="Tasa",
            kind="line",
            start=start,
            end=end,
            y=[
                "Tasa de actividad",
                "Tasa de actividad (tendencia-ciclo)",
                "Tasa de empleo",
                "Tasa de empleo (tendencia-ciclo)",
            ],
            height=460,
        )
        unemployment_plot = build_chart(
            data,
            title="Desempleo",
            subtitle="Tasa",
            kind="line",
            start=start,
            end=end,
            y=["Tasa de desempleo", "Tasa de desempleo (tendencia-ciclo)"],
        )

        return activity_employment_plot, unemployment_plot