Skip to content

Commit 716cd65

Browse files
committed
Fix merging pre-market events with intraday prices
1 parent 127b53e commit 716cd65

File tree

1 file changed

+12
-5
lines changed

1 file changed

+12
-5
lines changed

yfinance/utils.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -679,11 +679,18 @@ def safe_merge_dfs(df_main, df_sub, interval):
679679
indices = _np.searchsorted(_np.append(df_main.index, df_main.index[-1] + td), df_sub.index, side='right')
680680
indices -= 1 # Convert from [[i-1], [i]) to [[i], [i+1])
681681
# Numpy.searchsorted does not handle out-of-range well, so handle manually:
682-
for i in range(len(df_sub.index)):
683-
dt = df_sub.index[i]
684-
if dt < df_main.index[0] or dt >= df_main.index[-1] + td:
685-
# Out-of-range
686-
indices[i] = -1
682+
if intraday:
683+
for i in range(len(df_sub.index)):
684+
dt = df_sub.index[i].date()
685+
if dt < df_main.index[0].date() or dt >= df_main.index[-1].date() + _datetime.timedelta(days=1):
686+
# Out-of-range
687+
indices[i] = -1
688+
else:
689+
for i in range(len(df_sub.index)):
690+
dt = df_sub.index[i]
691+
if dt < df_main.index[0] or dt >= df_main.index[-1] + td:
692+
# Out-of-range
693+
indices[i] = -1
687694

688695
f_outOfRange = indices == -1
689696
if f_outOfRange.any():

0 commit comments

Comments
 (0)