0% found this document useful (0 votes)
126 views

Yfinance Python Tutorial (2022) - Analyzing Alpha

yFinance Tutorial by Analyzing Alpha

Uploaded by

panchalgl
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
126 views

Yfinance Python Tutorial (2022) - Analyzing Alpha

yFinance Tutorial by Analyzing Alpha

Uploaded by

panchalgl
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 20

23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

January 12, 2022


yfinance Python Tutorial (2022)
Yahoo Finance offers an excellent range of market data on stocks, bonds, currencies,
and cryptocurrencies. It also offers news reports with a variety of insights into
different markets from around the world - all accessible through the yfinance python
library.

Ran Aroussi is the man behind yfinance, a Python library that gives you easy access
to financial data available on Yahoo Finance. Since Yahoo decommissioned their AP on
May 15th,2017 (a move that left developers searching for an adequate alternative),
Ran's yfinance fit the bill. The software gained traction and has been downloaded
over 100k times with around 300k+ installs per month, according to PyPi!
Read on if you're interested in learning how to use the yfinance API to download
financial data for free.
https://analyzingalpha.com/yfinance-python 1/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

You can even follow along with The yfinance Python Tutorial Jupyter Notebook.
But before you get too excited, you need to ask yourself:

Should You Use the Yahoo Finance API?


I wouldn't recommend using Yahoo Finance data for making live trading decisions.
Why?
All Yahoo Finance APIs are unofficial solutions.
If the look Yahoo Finance! is ever changed, it'll break many of the APIs as the web
scraping code will need to be updated. Yahoo might rate limit or blacklisted you if you
create too many requests.
The data is good, not great. Good paid data sources generally offer a higher level of
reliability than freely available datasets
Assuming you're okay with these drawbacks, Yahoo Finance is arguably the best
freely available data source. And yfinance is one of the most popular ways to access
this incredible data.
Speaking of, today you're going to learn:
Should You Use the Yahoo Finance API?
When Should You Use yfinance?
How to Install yfinance
yfinance Classes
How to Download Historical Price Data Using yfinance
How to Download Fundamental Data Using yfinance
How to Get Options Data Using yfinance
How to Get Institutional Holders Using yfinance
Why You Shouldn't Use Yahoo Finance for Live Trading
Ticker.Info Keys
The Bottom Line
https://analyzingalpha.com/yfinance-python 2/20
When Should You Use yfinance?
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

If you've decided to use Yahoo Finance as a data source, yfinance is the way to go.
It's the most popular way to access Yahoo Data, and the API is open-source and free
to use. There are other free and paid APIs to access Yahoo's data, but yfinance is the
best place to start, and here's why.
1. It's simple to use
2. It returns data as Pandas DataFrames
3. One-minute bar granularity
If you're using AI to perform sentiment analysis, you can't you yfinance. You'll have to
grab that data directly or use another API.

How to Install yfinance


Installing yfinance is incredibly easy. As with most packages, there are two steps:
1. Load your Python virtual environment
2. Install yfinance using pip or conda
If you're not familiar with virtual environments, read: Python Virtual Environments:
Setup & Usage.
The following packages are required:
Python >= 2.7, 3.4+
Pandas (tested to work with >=0.23.1)
Numpy >= 1.11.1
requests >= 2.14.2
lxml >= 4.5.1
The following package is optional and used for backward compatibility:
pandas_datareader >= 0.4.0
With your virtual environment loaded, you're now ready to install finance.
https://analyzingalpha.com/yfinance-python 3/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Install yfinance Using Pip:


$ pip install yfinance --upgrade --no-cache-dir

Install yfinance Using Conda:


$ conda install -c ranaroussi yfinance

yfinance Classes
After loading yfinance, you'll have access to the following:

You'll mainly use the following:


Ticker
Tickers
Download

How to Download Historical Price Data Using yfinance


We can download data for one ticker using the Ticker object and multiple tickers
using the download method.
Download One Ticker Using yfinance
First, we need to create a ticker object and then use that object to get our data.
Creating a ticker object is straightforward:
https://analyzingalpha.com/yfinance-python 4/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

obj = yf.Ticker(‘goog’)

Now we can use the various methods to grab the data we want.

Most of the methods are self-explainatory, but here are a few that might trip new
users up:
1. Actions - Corporate actions such as dividends and splits
2. Analysis - EPS targets and revsisions
3. Info - Commonly queried data as a dictionary
4. Recommendations - Analyst buy, hold and sell ratings
Let's download historical market data using the history method. We can see that
history takes the following parameters:
def history(self, period="1mo", interval="1d",

start=None, end=None, prepost=False, actions=True,

auto_adjust=True, back_adjust=False,

proxy=None, rounding=False, tz=None, timeout=None, **kwargs):

"""

:Parameters:

period : str

Valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max

https://analyzingalpha.com/yfinance-python 5/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Either Use period parameter or use start and end

interval : str

Valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo

Intraday data cannot extend last 60 days

start: str

Download start date string (YYYY-MM-DD) or _datetime.

Default is 1900-01-01

end: str

Download end date string (YYYY-MM-DD) or _datetime.

Default is now

prepost : bool

Include Pre and Post market data in results?

Default is False

auto_adjust: bool

Adjust all OHLC automatically? Default is True

back_adjust: bool

Back-adjusted data to mimic true historical prices

proxy: str

Optional. Proxy server URL scheme. Default is None

rounding: bool

Round values to 2 decimal places?

Optional. Default is False = precision suggested by Yahoo!

tz: str

Optional timezone locale for dates.

(default data is returned as non-localized dates)

timeout: None or float

If not None stops waiting for a response after given number of

seconds. (Can also be a fraction of a second e.g. 0.01)

Default is None.

**kwargs: dict

debug: bool

Optional. If passed as False, will suppress

error message printing to console.

"""

Don't feel overwhelmed. The defaults are great, and in most cases, we'll only be
changing the period or dates and the interval.
Let's grab the most recent thirty days daily data for Google. Remember, data is
returned as a pandas dataframe:
goog = yf.Ticker('goog')

https://analyzingalpha.com/yfinance-python 6/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

data = goog.history()

data.head()

Open High Low Close Volume Dividends


Date

2021-12-10 2982.000000 2988.000000 2947.149902 2973.500000 1081700 0


2021-12-13 2968.879883 2971.250000 2927.199951 2934.090088 1205200 0
2021-12-14 2895.399902 2908.840088 2844.850098 2899.409912 1238900 0
2021-12-15 2887.320068 2950.344971 2854.110107 2947.370117 1364000 0
2021-12-16 2961.540039 2971.030029 2881.850098 2896.770020 1370000 0

That was easy!


Now let's download the most recent week's minute data; only this time, we'll use the
start and end dates instead of the period.
Keep in mind the following restrictions when using minute data:
1. The period must be within the last 30 days
2. Only 7 days of 1m granularity are allowed per request
data = goog.history(interval='1m', start='2022-01-03', end='2022-01-10')

data.head()

Open High Low Close Volu


Datetime

2022-01-03 09:30:00-05:00 2889.510010 2901.020020 2887.733398 2899.060059 673


2022-01-03 09:31:00-05:00 2900.520020 2906.060059 2900.489990 2904.580078 81
2022-01-03 09:32:00-05:00 2904.719971 2904.719971 2896.310059 2899.209961 70
2022-01-03 09:33:00-05:00 2898.699951 2898.699951 2898.699951 2898.699951 6
2022-01-03 09:34:00-05:00 2896.209961 2896.330078 2894.913086 2896.239990 34

Download Multiple Tickers Using yfinance


Downloading multiple tickers is similar to downloading a single ticker using the Ticker
object.
https://analyzingalpha.com/yfinance-python 7/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Please note that you're limited to the daily granularity when downloading multiple
tickers. If you want to get more granular, up to minute granularity, you'll need to use
the Ticker object above.
Now back to multiple ticker downloading...
We need to pass download a list of tickers instead of a single ticker and optionally let
the method know how to group the tickers -- by ticker or column (column is the
default). We can also optionally use threads to download the tickers faster.
def download(tickers, start=None, end=None, actions=False, threads=True,

group_by='column', auto_adjust=False, back_adjust=False,

progress=True, period="max", show_errors=True, interval="1d", prepost=


proxy=None, rounding=False, timeout=None, **kwargs):

"""Download yahoo tickers

:Parameters:

tickers : str, list

List of tickers to download

period : str

Valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max

Either Use period parameter or use start and end

interval : str

Valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo

Intraday data cannot extend last 60 days

start: str

Download start date string (YYYY-MM-DD) or _datetime.

Default is 1900-01-01

end: str

Download end date string (YYYY-MM-DD) or _datetime.

Default is now

group_by : str

Group by 'ticker' or 'column' (default)

prepost : bool

Include Pre and Post market data in results?

Default is False

auto_adjust: bool

Adjust all OHLC automatically? Default is False

actions: bool

Download dividend + stock splits data. Default is False

threads: bool / int

How many threads to use for mass downloading. Default is True

proxy: str

https://analyzingalpha.com/yfinance-python 8/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Optional. Proxy server URL scheme. Default is None

rounding: bool

Optional. Round values to 2 decimal places?

show_errors: bool

Optional. Doesn't print errors if True

timeout: None or float

If not None stops waiting for a response after given number of

seconds. (Can also be a fraction of a second e.g. 0.01)

"""

Let's download the most recent monthly data for Google and Facebook (META).
data = yf.download(['GOOG','META'], period='1mo')

data.head()

Adj Close Close High Low


GOOG META GOOG META GOOG META GOOG
Date

2021-12-10 2973.500000 15.52 2973.500000 15.52 2988.000000 15.83 2947.149902


2021-12-13 2934.090088 15.24 2934.090088 15.24 2971.250000 15.55 2927.199951
2021-12-14 2899.409912 15.06 2899.409912 15.06 2908.840088 15.17 2844.850098
2021-12-15 2947.370117 15.28 2947.370117 15.28 2950.344971 15.28 2854.110107
2021-12-16 2896.770020 14.79 2896.770020 14.79 2971.030029 15.46 2881.850098

Let's group by the ticker, and provide start and end dates for the same tickers.
data = yf.download(['GOOG','META'], start='2021-12-10', end='2021-12-30', group_by=
data.head()

META GOOG

Open High Low Close Adj Close Volume Open Hig


Date

2021-12-10 15.77 15.83 15.390 15.52 15.52 1845200 2982.000000 2988.00000


2021-12-13 15.53 15.55 15.130 15.24 15.24 2178500 2968.879883 2971.25000
2021-12-14 15.02 15.17 14.850 15.06 15.06 2662900 2895.399902 2908.84008
2021-12-15 14.95 15.28 14.615 15.28 15.28 2356300 2887.320068 2950.34497
2021-12-16 15.45 15.46 14.680 14.79 14.79 2511100 2961.540039 2971.03002
https://analyzingalpha.com/yfinance-python 9/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

How to Download Fundamental Data Using yfinance


We use the Ticker object to download fundamental data.

Download Fundamentals for One Ticker Using yfinance


We can loop through multiple tickers objects to download fundamental data for
various tickers.
Let's get the fundamental information for Danaher.

We can see that the Ticker object 'dhr' provides a lot of data to consume. Many of the
get_ methods give us exciting fundamental data.
Using one of my favorite industrial companies, Danaher, let's run through some
examples.
We can get Danaher's general and frequently-used information using the info
method, which returns a dictionary.
dhr = yf.Ticker('DHR')

info = dhr.info

info.keys()

https://analyzingalpha.com/yfinance-python 10/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

dict_keys(['zip', 'sector', 'fullTimeEmployees', 'longBusinessSummary',

'city', 'phone', 'state', 'country', 'companyOfficers', 'website',

'maxAge', 'address1', 'fax', 'industry', 'address2', 'ebitdaMargins',

'profitMargins', 'grossMargins', 'operatingCashflow', 'revenueGrowth',

'operatingMargins', 'ebitda', 'targetLowPrice', 'recommendationKey',

'grossProfits', 'freeCashflow', 'targetMedianPrice', 'currentPrice',

'earningsGrowth', 'currentRatio', 'returnOnAssets', 'numberOfAnalystOpinions',

'targetMeanPrice', 'debtToEquity', '...'])

We can access this data using the dictionary.


info['sector']

'Healthcare'

Let's grab Danaher's annual revenue and earnings using the earnings method .
dhr.earnings

Revenue Earnings

Year

2017 15518800000 2492100000

2018 17049000000 2651000000

2019 17911000000 3008000000

2020 22284000000 3646000000

And if the provided methods don't work, we can calculate financial ratios using the
financial statements.
dhr.get_financials()

2020-12-31 2019-12-31 2018-12-31


Research Development 1348000000.0 1126000000.0 1059000000.0
Effect Of Accounting Charges None None None
Income Before Tax 4495000000.0 3305000000.0 2962000000.0
Minority Interest 11000000.0 11000000.0 12300000.0
Net Income 3646000000.0 3008000000.0 2651000000.0
Selling General Administrative 6880000000.0 5577000000.0 5356000000.0

https://analyzingalpha.com/yfinance-python 11/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Gross Profit 12932000000.0 9984000000.0 9505000000.0


Ebit 4704000000.0 3281000000.0 3090000000.0
Operating Income 4704000000.0 3281000000.0 3090000000.0
Other Operating Expenses None None None
Interest Expense -275000000.0 -108000000.0 -137000000.0
Extraordinary Items None None None
Non Recurring None None None
Other Items None None None
Income Tax Expense 849000000.0 873000000.0 556000000.0
Total Revenue 22284000000.0 17911000000.0 17049000000.0
Total Operating Expenses 17580000000.0 14630000000.0 13959000000.0
Cost Of Revenue 9352000000.0 7927000000.0 7544000000.0
Total Other Income Expense Net -209000000.0 24000000.0 -128000000.0
Discontinued Operations NaN 576000000.0 245000000.0
Net Income From Continuing Ops 3646000000.0 2432000000.0 2406000000.0
Net Income Applicable To Common Shares 3510000000.0 2940000000.0 2651000000.0

We can also concatenate all financial statements together to calculate the ratios more
easily.
pnl = dhr.financials

bs = dhr.balancesheet

cf = dhr.cashflow

fs = pd.concat([pnl,bs,cf])

print(fs)

2020-12-31 2019-12-31 2018-12-31


Research Development 1348000000.0 1126000000.0 1059000000.0
Effect Of Accounting Charges None None None
Income Before Tax 4495000000.0 3305000000.0 2962000000.0
Minority Interest 11000000.0 11000000.0 12300000.0
Net Income 3646000000.0 3008000000.0 2651000000.0
... ... ... ..
Change To Inventory -123000000.0 -22000000.0 -134000000.0
Change To Account Receivables -264000000.0 -157000000.0 -55000000.0
Other Cashflows From Financing Activities -29000000.0 369000000.0 -18000000.0
Change To Netincome 182000000.0 -122000000.0 271000000.0
Capital Expenditures -791000000.0 -636000000.0 -584000000.0

[68 rows x 4 columns]

https://analyzingalpha.com/yfinance-python 12/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

I also often find it helpful to transpose the data and have the time as the index and the
column as the data field.
fs.T

Research Development Effect Of Accounting Charges ... Change To Netinco


...

2020-12-31 1348000000.0 None ... 182000000


2019-12-31 1126000000.0 None ... -122000000
2018-12-31 1059000000.0 None ... 271000000
2017-12-31 956400000.0 None ... 139300000

[4 rows x 68 columns]

And while there's no download method for downloading multiple symbols


fundamentals at once, we can loop through the tickers we're interested in and
aggregate the data.
Download Fundamentals for Multiple Tickers Using yfinance
The first thing we want to do when attempting to download data for multiple tickers is
to come up with a list of tickers!
Let's create a new list called fang:
tickers = ['FB','AMZN','NFLX','GOOG']

tickers

['FB', 'AMZN', 'NFLX', 'GOOG']

Now let's turn this list into a list of ticker objects using list comprehension.
tickers = [yf.Ticker(ticker) for ticker in fang]

https://analyzingalpha.com/yfinance-python 13/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

[yfinance.Ticker object <FB>,

yfinance.Ticker object <AMZN>,

yfinance.Ticker object <NFLX>,

yfinance.Ticker object <GOOG>]

Now let's concatenate all of the financial data together. We'll loop through each ticker,
aggregating the profit and loss, balance sheet, and cash flow statement. We'll then
add this data to a list.
Once we have a list of each company's aggregated financial statements, we'll
concatenate them, removing duplicate headings.
dfs = [] # list for each ticker's dataframe

for ticker in tickers:

# get each financial statement

pnl = ticker.financials

bs = ticker.balancesheet

cf = ticker.cashflow

# concatenate into one dataframe

fs = pd.concat([pnl, bs, cf])

# make dataframe format nicer

# Swap dates and columns

data = fs.T

# reset index (date) into a column

data = data.reset_index()

# Rename old index from '' to Date

data.columns = ['Date', *data.columns[1:]]

# Add ticker to dataframe

data['Ticker'] = ticker.ticker

dfs.append(data)

data.iloc[:,:3]# for display purposes

Date Research Development Effect Of Accounting Charges ...

0 2020-12-31 27573000000.0 None ...

1 2019-12-31 26018000000.0 None ...

2 2018-12-31 21419000000.0 None ...

3 2017-12-31 16625000000.0 None ...

https://analyzingalpha.com/yfinance-python 14/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Now that we have a list of dataframes, we need to iterate through concatenating them
and fixing the duplicate headers using pandas.io.parser .
We'll also reindex the dataframe to make it cleaner to use.
parser = pd.io.parsers.base_parser.ParserBase({'usecols': None})

for df in dfs:

df.columns = parser._maybe_dedup_names(df.columns)

df = pd.concat(dfs, ignore_index=True)

df = df.set_index(['Ticker','Date'])

df.iloc[:,:5] # for display purposes

Research Development Effect Of Accounting Charges Income Before Tax

Ticker Date

FB2020-12-31 18447000000.0 None 33180000000.0

2019-12-31 13600000000.0 None 24812000000.0

2018-12-31 10273000000.0 None 25361000000.0

2017-12-31 7754000000.0 None 20594000000.0

AMZN 2020-12-31 42740000000.0 None 24194000000.0

2019-12-31 35931000000.0 None 13962000000.0

2018-12-31 28837000000.0 None 11270000000.0

2017-12-31 22620000000.0 None 3802000000.0

NFLX 2020-12-31 1829600000.0 None 3199349000.0

2019-12-31 1545149000.0 None 2062231000.0

2018-12-31 1221814000.0 None 1226458000.0

2017-12-31 953710000.0 None 485321000.0

GOOG 2020-12-31 27573000000.0 None 48082000000.0

2019-12-31 26018000000.0 None 39625000000.0

2018-12-31 21419000000.0 None 34913000000.0

2017-12-31 16625000000.0 None 27193000000.0

Congratulations! Now you have the ticker's financial information organized by ticker
and date. You can now use Pandas to pull out any data of interest.

How to Get Options Data Using yfinance


Options give traders the right but not the obligation to buy or sell underlying assets at
a specific price at a predetermined date.
https://analyzingalpha.com/yfinance-python 15/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

You'll need to use the Ticker.options and Ticker.option_chain methods to download


options data.

options returns the options expiry dates as a tuple.


option_chain returns a yfinance.ticker.Options chain object that gives you the

chain for an expiry, or the entire chain if you don't specify a date.
aapl = yf.Ticker('aapl')

options = aapl.option_chain()

With a chain object, you'll have the following available to you.

Get yfinance Options Call Data


Use call on the options object to get the call data.
calls = options.calls

calls

https://analyzingalpha.com/yfinance-python 16/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Get yfinance Options Put Data


Getting puts is just as easy. We'll use options.puts to get the put data.
puts = options.puts

puts

https://analyzingalpha.com/yfinance-python 17/20
How to Get Institutional Holders Using yfinance
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

You can also gauge institutional sentiment using yfinance.


aapl.insitutional_holders

Holder Shares Date Reported % Out Value

0 Vanguard Group, Inc. (The) 1266332667 2021-09-29 0.0775 179186072


1 Blackrock Inc. 1026223983 2021-09-29 0.0628 145210693
2 Berkshire Hathaway, Inc 887135554 2021-09-29 0.0543 125529680
3 State Street Corporation 622163541 2021-09-29 0.0381 88036141
4 FMR, LLC 350617759 2021-09-29 0.0215 49612412
5 Geode Capital Management, LLC 259894947 2021-09-29 0.0159 36775135
6 Northern Trust Corporation 195321532 2021-09-29 0.0120 27637996
7 Price (T.Rowe) Associates Inc 188489966 2021-09-29 0.0115 26671330
8 Norges Bank Investment Management 167580974 2020-12-30 0.0103 22236319
9 Bank Of New York Mellon Corporation 149381117 2021-09-29 0.0091 21137428

Why You Shouldn't Use Yahoo Finance for Live Trading


Let's grab the data for Facebook. Facebook recently changed its name to Meta.
fb = yf.Ticker('fb')

meta = yf.Ticker('meta')

fb.get_cashflow()

2020-12-31 2019-12-31 2018-12-31


Investments -1.452000e+10 -4.254000e+09 2.449000e+09
Change To Liabilities 9.100000e+07 2.360000e+08 2.740000e+08
Total Cashflows From Investing Activities -3.005900e+10 -1.986400e+10 -1.160300e+10
Net Borrowings -5.800000e+08 -7.750000e+08 5.000000e+08
Total Cash From Financing Activities -1.029200e+10 -7.299000e+09 -1.557200e+10
Change To Operating Activities -1.302000e+09 8.975000e+09 9.100000e+07
Net Income 2.914600e+10 1.848500e+10 2.211200e+10
Change In Cash -1.325000e+09 9.155000e+09 1.920000e+09
Repurchase Of Stock -9.836000e+09 -6.539000e+09 -1.608700e+10
Effect Of Exchange Rate 2.790000e+08 4.000000e+06 -1.790000e+08

https://analyzingalpha.com/yfinance-python 18/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

Total Cash From Operating Activities 3.874700e+10 3.631400e+10 2.927400e+10


Depreciation 6.862000e+09 5.741000e+09 4.315000e+09
Other Cashflows From Investing Activities -3.600000e+07 -3.600000e+07 -3.600000e+07
Change To Account Receivables -1.512000e+09 -1.961000e+09 -1.892000e+09
Other Cashflows From Financing Activities 1.240000e+08 1.500000e+07 1.500000e+07
Change To Netincome 5.462000e+09 4.838000e+09 4.374000e+09
Capital Expenditures -1.511500e+10 -1.510200e+10 -1.391500e+10

And now for Meta...


meta.get_cashflow()

Empty DataFrame

Columns: [Open, High, Low, Close, Adj Close, Volume]

Index: []

Facebook and Meta are the same company, but they return different data. This is just
one of the many risks of using Yahoo Finance.

Ticker.Info Keys
Here's everything that ticker.info provides:
dict_keys(['zip', 'sector', 'fullTimeEmployees', 'longBusinessSummary', 'city', 'ph

The Bottom Line


yfinance is a fantastic tool to grab data from Yahoo Finance. Yahoo Finance is
probably the best source for free data.
Free data is free, though. And as I discussed and demonstrated above, I wouldn't
recommend it for live trading.

https://analyzingalpha.com/yfinance-python 19/20
23/02/2022, 17:39 yfinance Python Tutorial (2022) - Analyzing Alpha

But if you're looking to do some high-level research and free what you need, yfinance
has got you covered.

← 65+ Commodity Statistics & Facts for 2022


How to Build a Dividend Snowball →

© 2022 • Analyzing Alpha


Disclaimer • Privacy • Terms

https://analyzingalpha.com/yfinance-python 20/20

You might also like