mirror of
https://github.com/OpenBB-finance/OpenBB.git
synced 2026-10-27 20:42:26 +00:00
qa router fixes and to_dataframe
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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")
|
||||
|
||||
@@ -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":
|
||||
|
||||
Reference in New Issue
Block a user