|
34 | 34 |
|
35 | 35 |
|
36 | 36 | @utils.log_indent_decorator |
37 | | -def download(tickers, start=None, end=None, actions=False, threads=True, ignore_tz=None, |
38 | | - group_by='column', auto_adjust=False, back_adjust=False, repair=False, keepna=False, |
39 | | - progress=True, period="max", interval="1d", prepost=False, |
40 | | - proxy=None, rounding=False, timeout=10, session=None): |
| 37 | +def download(tickers, start=None, end=None, actions=False, threads=True, |
| 38 | + ignore_tz=None, group_by='column', auto_adjust=False, back_adjust=False, |
| 39 | + repair=False, keepna=False, progress=True, period="max", interval="1d", |
| 40 | + prepost=False, proxy=None, rounding=False, timeout=10, session=None, |
| 41 | + multi_level_index=True): |
41 | 42 | """Download yahoo tickers |
42 | 43 | :Parameters: |
43 | 44 | tickers : str, list |
@@ -85,6 +86,8 @@ def download(tickers, start=None, end=None, actions=False, threads=True, ignore_ |
85 | 86 | seconds. (Can also be a fraction of a second e.g. 0.01) |
86 | 87 | session: None or Session |
87 | 88 | Optional. Pass your own session object to be used for all requests |
| 89 | + multi_level_index: bool |
| 90 | + Optional. Always return a MultiIndex DataFrame? Default is False |
88 | 91 | """ |
89 | 92 | logger = utils.get_yf_logger() |
90 | 93 |
|
@@ -215,6 +218,9 @@ def download(tickers, start=None, end=None, actions=False, threads=True, ignore_ |
215 | 218 | data.columns = data.columns.swaplevel(0, 1) |
216 | 219 | data.sort_index(level=0, axis=1, inplace=True) |
217 | 220 |
|
| 221 | + if not multi_level_index and len(tickers) == 1: |
| 222 | + data = data.droplevel(0 if group_by == 'ticker' else 1, axis=1).rename_axis(None, axis=1) |
| 223 | + |
218 | 224 | return data |
219 | 225 |
|
220 | 226 |
|
|
0 commit comments