Skip to content

Commit 1ed7c39

Browse files
committed
Prices fix: improve handling empty data
1 parent fee9af0 commit 1ed7c39

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

yfinance/scrapers/history.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,10 +406,11 @@ def history(self, period="1mo", interval="1d",
406406
df = self._fix_bad_div_adjust(df, interval, currency)
407407

408408
# Need the latest/last row to be repaired before 100x/split repair:
409-
df_last = self._fix_zeroes(df.iloc[-1:], interval, tz_exchange, prepost)
410-
if 'Repaired?' not in df.columns:
411-
df['Repaired?'] = False
412-
df = pd.concat([df.drop(df.index[-1]), df_last])
409+
if not df.empty:
410+
df_last = self._fix_zeroes(df.iloc[-1:], interval, tz_exchange, prepost)
411+
if 'Repaired?' not in df.columns:
412+
df['Repaired?'] = False
413+
df = pd.concat([df.drop(df.index[-1]), df_last])
413414

414415
df = self._fix_unit_mixups(df, interval, tz_exchange, prepost)
415416
df = self._fix_bad_stock_splits(df, interval, tz_exchange)

yfinance/utils.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -529,23 +529,23 @@ def parse_actions(data):
529529
splits = None
530530

531531
if "events" in data:
532-
if "dividends" in data["events"]:
532+
if "dividends" in data["events"] and len(data["events"]['dividends']) > 0:
533533
dividends = _pd.DataFrame(
534534
data=list(data["events"]["dividends"].values()))
535535
dividends.set_index("date", inplace=True)
536536
dividends.index = _pd.to_datetime(dividends.index, unit="s")
537537
dividends.sort_index(inplace=True)
538538
dividends.columns = ["Dividends"]
539539

540-
if "capitalGains" in data["events"]:
540+
if "capitalGains" in data["events"] and len(data["events"]['capitalGains']) > 0:
541541
capital_gains = _pd.DataFrame(
542542
data=list(data["events"]["capitalGains"].values()))
543543
capital_gains.set_index("date", inplace=True)
544544
capital_gains.index = _pd.to_datetime(capital_gains.index, unit="s")
545545
capital_gains.sort_index(inplace=True)
546546
capital_gains.columns = ["Capital Gains"]
547547

548-
if "splits" in data["events"]:
548+
if "splits" in data["events"] and len(data["events"]['splits']) > 0:
549549
splits = _pd.DataFrame(
550550
data=list(data["events"]["splits"].values()))
551551
splits.set_index("date", inplace=True)

0 commit comments

Comments
 (0)