Home >Backend Development >Python Tutorial >What is the best way to get stock data using Python?
In this article, we will learn the best way to get stock data using Python.
yfinance Python library will be used to retrieve current and historical stock market price data from Yahoo Finance.
One of the best platforms for stock market data is Yahoo Finance. Simply download the dataset from the Yahoo Finance website and use the yfinance library and Python programming to access it.
You can install yfinance with the help of pip, all you have to do is open a command prompt and type the following command to show the syntax:
pip install yfinance
The best part about the yfinance library is that it is free to use and does not require an API key
We need to find the stock symbols that can be used for data extraction. we will show The current market price and previous closing price of GOOGL in the example below.
The following program returns the market price value, previous closing value, and stock code Use values from the yfinance module -
import yfinance as yf ticker = yf.Ticker('GOOGL').info marketPrice = ticker['regularMarketPrice'] previousClosePrice = ticker['regularMarketPreviousClose'] print('Ticker Value: GOOGL') print('Market Price Value:', marketPrice) print('Previous Close Price Value:', previousClosePrice)
When executed, the above program will generate the following output -
Ticker Value: GOOGL Market Price Value: 92.83 Previous Close Price Value: 93.71
By giving the start date, end date and ticker, we can get complete historical price data.
The following program returns stock price data between the start date and the end date -
# importing the yfinance package import yfinance as yf # giving the start and end dates startDate = '2015-03-01' endDate = '2017-03-01' # setting the ticker value ticker = 'GOOGL' # downloading the data of the ticker value between # the start and end dates resultData = yf.download(ticker, startDate, endDate) # printing the last 5 rows of the data print(resultData.tail())
When executed, the above program will generate the following output -
[*********************100%***********************] 1 of 1 completed Open High Low Close Adj Close Volume Date 2017-02-22 42.400002 42.689499 42.335499 42.568001 42.568001 24488000 2017-02-23 42.554001 42.631001 42.125000 42.549999 42.549999 27734000 2017-02-24 42.382500 42.417999 42.147999 42.390499 42.390499 26924000 2017-02-27 42.247501 42.533501 42.150501 42.483501 42.483501 20206000 2017-02-28 42.367500 42.441502 42.071999 42.246498 42.246498 27662000
The above example will retrieve stock price data from 2015-03-01 to 2017-03-01.
If you want to extract data from multiple codes at the same time, please provide the codes as a space-separated string.
Date is the index of the dataset, not the column of the dataset in the example above. This index must be converted into columns before any data analysis can be performed on it. Here's how to do it -
The following program adds column names to stock data between start and end dates -
import yfinance as yf # giving the start and end dates startDate = '2015-03-01' endDate = '2017-03-01' # setting the ticker value ticker = 'GOOGL' # downloading the data of the ticker value between # the start and end dates resultData = yf.download(ticker, startDate, endDate) # Setting date as index resultData["Date"] = resultData.index # Giving column names resultData = resultData[["Date", "Open", "High","Low", "Close", "Adj Close", "Volume"]] # Resetting the index values resultData.reset_index(drop=True, inplace=True) # getting the first 5 rows of the data print(resultData.head())
When executed, the above program will generate the following output -
[*********************100%***********************] 1 of 1 completed Date Open High Low Close Adj Close Volume 0 2015-03-02 28.350000 28.799500 28.157499 28.750999 28.750999 50406000 1 2015-03-03 28.817499 29.042500 28.525000 28.939501 28.939501 50526000 2 2015-03-04 28.848499 29.081499 28.625999 28.916500 28.916500 37964000 3 2015-03-05 28.981001 29.160000 28.911501 29.071501 29.071501 35918000 4 2015-03-06 29.100000 29.139000 28.603001 28.645000 28.645000 37592000
The above converted data is the same as the data we obtained from Yahoo Finance
to_csv()The method can be used to export a DataFrame object to a CSV file. The following code will help you export the data in CSV file as the data converted above is already in pandas dataframe.
# importing yfinance module with an alias name import yfinance as yf # giving the start and end dates startDate = '2015-03-01' endDate = '2017-03-01' # setting the ticker value ticker = 'GOOGL' # downloading the data of the ticker value between # the start and end dates resultData = yf.download(ticker, startDate, endDate) # printing the last 5 rows of the data print(resultData.tail()) # exporting/converting the above data to a CSV file resultData.to_csv("outputGOOGL.csv")
When executed, the above program will generate the following output -
[*********************100%***********************] 1 of 1 completed Open High Low Close Adj Close Volume Date 2017-02-22 42.400002 42.689499 42.335499 42.568001 42.568001 24488000 2017-02-23 42.554001 42.631001 42.125000 42.549999 42.549999 27734000 2017-02-24 42.382500 42.417999 42.147999 42.390499 42.390499 26924000 2017-02-27 42.247501 42.533501 42.150501 42.483501 42.483501 20206000 2017-02-28 42.367500 42.441502 42.071999 42.246498 42.246498 27662000
yfinance The Python module is one of the easiest to set up, collect data and perform data analysis activities. Using packages like Matplotlib, Seaborn, or Bokeh, you can visualize results and capture insights.
You can even display these visualizations directly on a web page using PyScript.
In this article, we learned how to use the Python yfinance module to get the best stock data. Additionally, we learned how to get all stock data for a specified time period, how to perform data analysis by adding custom indexes and columns, and how to convert this data into a CSV file.
The above is the detailed content of What is the best way to get stock data using Python?. For more information, please follow other related articles on the PHP Chinese website!