qa router fixes and to_dataframe

This commit is contained in:
Diogo Sousa
2023-08-15 11:55:20 +01:00
parent 2d245c8c6e
commit 2b6d34b89f
3 changed files with 15 additions and 3 deletions

View File

@@ -41,6 +41,13 @@ def get_fama_raw(start_date: str, end_date: str) -> pd.DataFrame:
df["HML"] = df["HML"] / 100
df["RF"] = df["RF"] / 100
df = df.set_index("Date")
dt_start_date = pd.to_datetime(start_date, format="%Y-%m-%d")
if dt_start_date > df.index.max():
raise ValueError(
f"Start date '{dt_start_date}' is after the last date available for Fama-French '{df.index[-1]}'"
)
df = df.loc[start_date:end_date] # type: ignore
return df

View File

@@ -85,7 +85,7 @@ def capm(data: List[Data], target: str) -> OBBject[CAPMModel]:
df_target = get_target_columns(df, ["date", target])
df_target = df_target.set_index("date")
df_target["return"] = df_target.pct_change()
df_target.loc[:, "return"] = df_target.pct_change()
df_target = df_target.dropna()
start_date = df_target.index.min().strftime("%Y-%m-%d")
end_date = df_target.index.max().strftime("%Y-%m-%d")

View File

@@ -9,9 +9,14 @@ def basemodel_to_df(
) -> pd.DataFrame:
"""Convert list of BaseModel to a Pandas DataFrame."""
data_list = [data] if not isinstance(data, list) else data
if isinstance(data, list):
df = pd.DataFrame([d.dict() for d in data])
else:
try:
df = pd.DataFrame(data.dict())
except ValueError:
df = pd.DataFrame(data.dict(), index=["values"])
df = pd.DataFrame([d.dict() for d in data_list])
if index and index in df.columns:
df = df.set_index(index)
if df.index.name == "date":