Downloading and Exporting Stock Market Data with yfinance, pandas, and Python

In this blog post, we will demonstrate how to download historical stock prices using the yfinance library and Python, and then export the data to an Excel file. We will create a list of stock tickers, define a time range, download the closing prices for each ticker within that time range, and store the closing prices in a DataFrame. Finally, we will export the DataFrame to an Excel file.

Importing Libraries

				
					import yfinance as yf
import pandas as pd
from datetime import datetime, timedelta
import os

				
			

We begin by importing the necessary libraries: yfinance, pandas, datetime, timedelta, and os. The yfinance library allows us to download financial data from Yahoo Finance, while pandas helps us manage the data efficiently.

Section 1: Define Tickers and Time Range

				
					## Define the list of tickers
tickers = ['SPY','BND','GLD','QQQ','VTI']

## Set the end date to today
end_date = datetime.today()
print(end_date)

## Set the start date to 2 years ago
start_date = end_date - timedelta(days = 2*365)
print(start_date)

				
			

In this section, we define a list of stock tickers that we want to download historical prices for. We then set the end date to the current date and the start date to two years ago using the datetime and timedelta libraries.

Section 2: Download Close Prices

				
					## Create an empty DataFrame to store the close prices
close_df = pd.DataFrame()

## Download the close prices for each ticker
for ticker in tickers:
    data = yf.download(ticker, start = start_date, end = end_date)
    close_df[ticker] = data['Close']

## Display the DataFrame
print(close_df)

				
			

In this section, we create an empty DataFrame called close_df to store the closing prices for each stock ticker. We then loop through each ticker in the tickers list and download the historical data using the yf.download() function. We add the closing prices to the close_df DataFrame and print the result.

Section 3: Set Output Folder and Export Data

				
					## Set the output folder path
output_folder = r"C:\Users\Ryan\Documents\YouTube Videos\Python Tutorials\Retrieve Stock Prices and Export to Excel"

## Export the DataFrame to Excel
output_file = os.path.join(output_folder, 'stock_prices.xlsx')
close_df.to_excel(output_file)

				
			

In this final section, we set the output folder path where we want to save the Excel file containing the historical stock prices. We then use the to_excel() function from the pandas library to export the close_df DataFrame to an Excel file.

Conclusion

In this blog post, we demonstrated how to download historical stock prices using the yfinance library and Python, and then export the data to an Excel file. By creating a list of stock tickers, defining a time range, downloading the closing prices for each ticker within that time range, and exporting the data to an Excel file, we can easily analyze stock performance and gain insights into market trends.

Hire me for your next Project

I can assist you with your financial modeling and quantitative finance projects, leveraging my expertise and experience in the field.

Contact Me

Feel free to reach out to discuss your freelance project needs, and let’s collaborate on bringing your vision to life!