From fa9729f4a00115ba85c7c35d07ddf57dc6ad794c Mon Sep 17 00:00:00 2001 From: Danglewood <85772166+deeleeramone@users.noreply.github.com> Date: Mon, 25 May 2026 22:07:44 -0700 Subject: [PATCH] [BugFix] `openbb-yfinance`: Fix Multi-Index Shape Change for Single Ticker Download (#7512) * fix multi-index shape change for single ticker download * lint * black --- .../yfinance/openbb_yfinance/utils/helpers.py | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py index 3b44b87a66e..63f33a47ce4 100644 --- a/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py +++ b/openbb_platform/providers/yfinance/openbb_yfinance/utils/helpers.py @@ -552,7 +552,14 @@ def yf_download( # pylint: disable=too-many-positional-arguments tickers = symbol.split(",") if len(tickers) == 1: - data = data.get(symbol, DataFrame()) # type: ignore + if hasattr(data.columns, "levels"): + try: + if symbol in data.columns.get_level_values(0): + data = data[symbol] # type: ignore + elif symbol in data.columns.get_level_values(1): + data = data.xs(symbol, level=1, axis=1) # type: ignore + except (KeyError, IndexError): + pass elif len(tickers) > 1: _data = DataFrame() for ticker in tickers: @@ -571,8 +578,11 @@ def yf_download( # pylint: disable=too-many-positional-arguments if data.empty: # type: ignore raise EmptyDataError() + if hasattr(data.columns, "levels") and len(data.columns.names) > 1: + data.columns = [col[0] if isinstance(col, tuple) else col for col in data.columns] # type: ignore + data = data.reset_index() # type: ignore - data = data.rename(columns={"Date": "date", "Datetime": "date"}) + data = data.rename(columns={"Date": "date", "Datetime": "date", "index": "date"}) data["date"] = data["date"].apply(to_datetime) data = data[data["Open"] > 0]