Extracting Data from Yahoo Finance with yFinance

Eurico Paes
3 min readJul 7, 2024

--

The financial markets are driven by data, and accessing this data efficiently is crucial for analysts, traders, and researchers. One popular tool for extracting financial data is the yfinance library in Python. This guide will walk you through the process of using yfinance to fetch and manipulate financial data.

What is yFinance?

yfinance is a Python library that provides a simple interface to download historical market data from Yahoo Finance. It is widely used due to its ease of use, reliability, and extensive range of available data.

Installation

To get started with yfinance, you need to install the library. You can do this using pip:

pip install yfinance

Basic Usage

Once installed, you can begin extracting data. Here’s a simple example of how to use yfinance to get historical stock prices for a particular ticker symbol.

from datetime import datetime, timedelta
import pandas as pd
import yfinance as yf
import mplfinance as mpf
from datetime import datetime, timedelta

ticker_symbol = 'AAPL'

data = yf.download(ticker_symbol, start='2020-01-01', end='2023-01-01')

This script will fetch historical data for Apple Inc. (AAPL) from January 1, 2020, to January 1, 2023. The data variable will contain a pandas DataFrame with the stock prices and other related information.

Fetching Multiple Tickers

You can also fetch data for multiple ticker symbols simultaneously. Here’s how:

tickers = ['AAPL', 'MSFT', 'GOOGL']
data = yf.download(tickers, start='2020-01-01', end='2023-01-01')

In this example, the data variable will contain a pandas DataFrame with the stock prices for Apple, Microsoft, and Google.

Accessing Different Data Types

yfinance allows you to access various types of data, including stock prices, dividends, and splits. Here’s how you can do it:

# Define the ticker symbol
ticker = yf.Ticker('NVDA')

# Get historical market data
hist = ticker.history(period="1y")

# Get dividends
dividends = ticker.dividends

# Get stock splits
splits = ticker.splits

Advanced Data Extraction

For more advanced data extraction, you can customize the parameters to suit your needs. For example, you can specify the interval for the data (e.g., daily, weekly, monthly).

data = yf.download('AAPL', start='2020-01-01', end='2023-01-01', interval='1wk')

Limitations :

data = yf.download('AAPL', start='2020-01-01', end='2023-01-01', interval='5m')
data = yf.download('AAPL', start='2020-01-01', end='2023-01-01', interval='1m')

Plotting Stock Data

Visualizing stock data is crucial for identifying trends and patterns. yfinance integrates seamlessly with popular plotting libraries like mplfinance.

import mplfinance as mpf
data = yf.download('NVDA', start='2020-01-01', end='2024-07-01')
mpf.plot(data.tail(100),type='candle',style='yahoo',volume=True)

Conclusion

yfinance is an incredibly versatile tool for extracting financial data from Yahoo Finance. Its simplicity and breadth of features make it ideal for both novice and experienced analysts. Whether you're conducting in-depth financial analysis, backtesting trading strategies, or just tracking your favorite stocks, yfinance provides the functionality you need to access and manipulate financial data efficiently.

By leveraging the features and techniques covered in this guide, you can harness the power of yfinance to enhance your financial data analysis and decision-making processes.

--

--