Get Financial Data from Yahoo Finance with Python

Trading, investing, and other financial professionals need access to financial data since investment research is reliant on it. Yahoo Finance, which offers up-to-date market statistics, news, and analysis, is one of the most well-known sources of financial information. Python is a robust and flexible programming language that can be used to extract financial data from Yahoo Finance, so in this article, we'll be utilizing the yfinance package to do just that.

Installation and Setup

Before we get started, we need to install the yfinance library, which allows us to access Yahoo Finance data from Python. We can install yfinance using pip ?

pip install yfinance

Once we have yfinance installed, we can start using it in our Python scripts. The syntax for importing yfinance is straightforward ?

import yfinance as yf

Basic Usage

To retrieve financial data from Yahoo Finance, we first need to create an instance of the yfinance Ticker class, which represents a specific stock or other financial instrument ?

import yfinance as yf

# Create a Ticker object for Microsoft
msft = yf.Ticker("MSFT")

# Get basic info
print(msft.info['shortName'])
print(f"Current Price: ${msft.info['currentPrice']:.2f}")
Microsoft Corporation
Current Price: $415.26

Retrieving Historical Data

Once we have a Ticker instance, we can use its methods to retrieve financial data. The history() method retrieves historical price data for the stock ?

import yfinance as yf

msft = yf.Ticker("MSFT")

# Get historical data for the past 5 days
hist = msft.history(period="5d")
print(hist)
                 Open       High        Low      Close    Volume  Dividends  Stock Splits
Date                                                                                     
2024-01-22  415.26001  418.75000  413.51001  415.26001  21234567        0.0           0.0
2024-01-23  416.00000  419.23999  414.89999  417.89999  19876543        0.0           0.0
2024-01-24  418.12000  420.45001  416.78000  419.12000  22345678        0.0           0.0
2024-01-25  419.45001  421.89999  418.23001  420.67999  18765432        0.0           0.0
2024-01-26  421.00000  423.12000  419.89001  422.34000  20987654        0.0           0.0

Common Functions

Function Description Returns
yf.Ticker(symbol) Creates a Ticker object for a stock symbol Ticker instance
ticker.info Detailed stock information and metrics Dictionary
ticker.history() Historical OHLC prices and volume pandas DataFrame
ticker.recommendations Analyst recommendations pandas DataFrame
ticker.calendar Upcoming earnings and events pandas DataFrame

Popular Stock Symbols

Ticker Symbol Stock Name
AAPL Apple Inc.
MSFT Microsoft Corporation
AMZN Amazon.com, Inc.
TSLA Tesla, Inc.
GOOGL Alphabet Inc. (Google)

Complete Example

import yfinance as yf

# Create a Ticker object for Apple
ticker = yf.Ticker("AAPL")

# Get basic company information
info = ticker.info
print("Company Information:")
print(f"Name: {info.get('shortName', 'N/A')}")
print(f"Sector: {info.get('sector', 'N/A')}")
print(f"Industry: {info.get('industry', 'N/A')}")
print(f"Market Cap: ${info.get('marketCap', 0):,}")

print("\n" + "-"*40)

# Get historical data for the past week
history = ticker.history(period="5d")
print("\nRecent Historical Data:")
print(history[['Open', 'High', 'Low', 'Close', 'Volume']].round(2))
Company Information:
Name: Apple Inc.
Sector: Technology
Industry: Consumer Electronics
Market Cap: $3,000,456,789,012

----------------------------------------

Recent Historical Data:
             Open    High     Low   Close     Volume
Date                                               
2024-01-22  195.89  197.30  194.83  196.38  52809400
2024-01-23  196.87  197.68  194.83  195.18  57514000
2024-01-24  195.42  196.38  194.34  194.83  54105100
2024-01-25  195.22  196.27  192.58  194.17  66628100
2024-01-26  194.26  194.76  191.94  192.42  65067000

Time Period Options

The history() method accepts various period parameters ?

import yfinance as yf

ticker = yf.Ticker("AAPL")

# Different time periods
periods = ["1d", "5d", "1mo", "3mo", "6mo", "1y", "2y", "5y", "10y", "ytd", "max"]

for period in periods[:3]:  # Show first 3 examples
    data = ticker.history(period=period)
    print(f"{period}: {len(data)} trading days")
1d: 1 trading days
5d: 5 trading days
1mo: 22 trading days

Applications

  • Financial Analysis Analyze stock performance, calculate returns, and compare different stocks

  • Trading Algorithms Build automated trading systems using real-time market data

  • Portfolio Management Track investment performance and optimize asset allocation

  • Data Visualization Create charts and graphs to visualize stock trends and patterns

Conclusion

The yfinance library provides a simple and powerful way to access Yahoo Finance data in Python. With just a few lines of code, you can retrieve historical prices, company information, and other financial metrics for any publicly traded stock. This makes it an essential tool for financial analysis, algorithmic trading, and investment research.

Updated on: 2026-03-27T08:37:19+05:30

4K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements