yahooquery icon indicating copy to clipboard operation
yahooquery copied to clipboard

KeyError 'currencyCode' in get_financial_data()

Open Scoodood opened this issue 11 months ago • 3 comments

Describe the bug get_financial_data() is crashing

To Reproduce Steps to reproduce the behavior:

import yahooquery as yq

aapl = yq.Ticker('aapl')
aapl.get_financial_data(
    frequency='a',
    types=['PeRatio', 'PegRatio', 'PsRatio', 'PbRatio']
)

Expected behavior I expect the function to return a pandas Dataframe with those values

Screenshots

File c:\Users\xxx\miniconda3\envs\py311\Lib\site-packages\pandas\core\groupby\grouper.py:1043, in get_grouper(obj, key, axis, level, sort, observed, validate, dropna)
   1041         in_axis, level, gpr = False, gpr, None
   1042     else:
-> 1043         raise KeyError(gpr)
   1044 elif isinstance(gpr, Grouper) and gpr.key is not None:
   1045     # Add key to exclusions
   1046     exclusions.add(gpr.key)

KeyError: 'currencyCode'

Desktop (please complete the following information):

  • Win11 Pro
  • Python 3.12

Scoodood avatar Mar 26 '24 21:03 Scoodood

I think the problem is that the valuation ratios you're trying to retrieve, 'PeRatio', 'PegRatio', and 'PbRatio', aren't found in financial statements. Take a look at the documentation for the get_financial_data function here. Valid elements for the types list are (mostly) listed in the documentation.

ms82494 avatar Mar 27 '24 18:03 ms82494

But the keys that I used to retrieve those ratios were listed in the documentation. From your link, just scroll down a bit more and you will see this.

image

Scoodood avatar Mar 29 '24 15:03 Scoodood

My apologies, you are correct! And trying your code, I get the same error as you do.

I had never tried to retrieve these valuation measures from the financial statements because logically, they don't seem to belong there. They are market-based metrics that continually change as the stock price moves, and they aren't reported by companies in their quarterly filings. Maybe at one point Yahoo Finance had these stats in the "Financials" tab of their stock pages, but they are now found on the "Statistics" tab.

You can now get the data you need from the valuation_measures attribute of the Ticker object, see here.

ms82494 avatar Mar 29 '24 16:03 ms82494