fix: handle single-ticker yahoo panels
This commit is contained in:
@@ -63,10 +63,11 @@ def _download(tickers: list[str], start: str, end: str | None = None,
|
||||
result = {}
|
||||
for field in fields:
|
||||
if field in raw.columns.get_level_values(0) if isinstance(raw.columns, pd.MultiIndex) else field in raw.columns:
|
||||
if len(tickers) > 1:
|
||||
result[field] = raw[field]
|
||||
selected = raw[field]
|
||||
if isinstance(selected, pd.Series):
|
||||
result[field] = selected.to_frame(name=tickers[0])
|
||||
else:
|
||||
result[field] = raw[field].to_frame(name=tickers[0])
|
||||
result[field] = selected
|
||||
else:
|
||||
result[field] = pd.DataFrame()
|
||||
return result
|
||||
@@ -83,10 +84,11 @@ def _download_period(tickers: list[str], period: str,
|
||||
result = {}
|
||||
for field in fields:
|
||||
if field in raw.columns.get_level_values(0) if isinstance(raw.columns, pd.MultiIndex) else field in raw.columns:
|
||||
if len(tickers) > 1:
|
||||
result[field] = raw[field]
|
||||
selected = raw[field]
|
||||
if isinstance(selected, pd.Series):
|
||||
result[field] = selected.to_frame(name=tickers[0])
|
||||
else:
|
||||
result[field] = raw[field].to_frame(name=tickers[0])
|
||||
result[field] = selected
|
||||
else:
|
||||
result[field] = pd.DataFrame()
|
||||
return result
|
||||
|
||||
Reference in New Issue
Block a user