Skip to content

Commit 1db6be7

Browse files
authored
Merge pull request #1093 from ranaroussi/fix/download-timezones
Add 'ignore_tz' arg to download()
2 parents 51f2c73 + 7902ec8 commit 1db6be7

File tree

2 files changed

+16
-3
lines changed

2 files changed

+16
-3
lines changed

README.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,11 @@ data = yf.download( # or pdr.get_data_yahoo(...
187187
# (optional, default is '1d')
188188
interval = "1m",
189189

190+
# Whether to ignore timezone when aligning ticker data from
191+
# different timezones. Default is True. False may be useful for
192+
# minute/hourly data.
193+
ignore_tz = False,
194+
190195
# group by ticker (to access via data['SPY'])
191196
# (optional, default is 'column')
192197
group_by = 'ticker',

yfinance/multi.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
from . import shared
3030

3131

32-
def download(tickers, start=None, end=None, actions=False, threads=True,
32+
def download(tickers, start=None, end=None, actions=False, threads=True, ignore_tz=True,
3333
group_by='column', auto_adjust=False, back_adjust=False, keepna=False,
3434
progress=True, period="max", show_errors=True, interval="1d", prepost=False,
3535
proxy=None, rounding=False, timeout=None, **kwargs):
@@ -63,6 +63,9 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
6363
Download dividend + stock splits data. Default is False
6464
threads: bool / int
6565
How many threads to use for mass downloading. Default is True
66+
ignore_tz: bool
67+
When combining from different timezones, ignore that part of datetime.
68+
Default is True
6669
proxy: str
6770
Optional. Proxy server URL scheme. Default is None
6871
rounding: bool
@@ -140,12 +143,17 @@ def download(tickers, start=None, end=None, actions=False, threads=True,
140143
ticker = tickers[0]
141144
return shared._DFS[shared._ISINS.get(ticker, ticker)]
142145

146+
if ignore_tz:
147+
for tkr in shared._DFS.keys():
148+
if (shared._DFS[tkr] is not None) and (shared._DFS[tkr].shape[0]>0):
149+
shared._DFS[tkr].index = shared._DFS[tkr].index.tz_localize(None)
150+
143151
try:
144-
data = _pd.concat(shared._DFS.values(), axis=1,
152+
data = _pd.concat(shared._DFS.values(), axis=1, sort=True,
145153
keys=shared._DFS.keys())
146154
except Exception:
147155
_realign_dfs()
148-
data = _pd.concat(shared._DFS.values(), axis=1,
156+
data = _pd.concat(shared._DFS.values(), axis=1, sort=True,
149157
keys=shared._DFS.keys())
150158

151159
# switch names back to isins if applicable

0 commit comments

Comments
 (0)