Python yfinance ModuleThere are many instances when we have to get financial data or statements of a blogging site or even a browser sometimes. One of the famous browsers that allow us to collect its financial data is Yahoo, and actually, there are many instances when we need to perform this task. In this tutorial, we are going to learn about the yfinance module in Python, and we will learn how we can get financial data from Yahoo using this module and what kind of data we can collect from it. yfinance Module in PythonThe yfinance is one of the famous modules in Python, which is used to collect online data, and with it, we can collect the financial data of Yahoo. With the help of the yfinance module, we retrieve and collect the company's financial information (such as financial ratios, etc.) as well as the histories of marketing data by using its functions. But, before we start learning more about this module and its implementation as well as applications, we have to install the yfinance module in our system (as it is not a built-in module in Python). Once the installation process is done, we will proceed to the implementation part of the yfinance module. InstallationIn this section, we will learn how we can install the yfinance module in our system so that we can import it into a program and use its functions. We have to follow the following steps to install the yfinance module on our device: Step 1: Open the command prompt terminal of the device and locate the directory (using mkdir) where Python is installed in the system. Step 2: Now write the following command in the terminal to install the yfinance module with pip installer: Step 3: When we will press the enter key, the pip installer will start installing the yfinance module in the system at the defined path. As we can see, the yfinance module is successfully installed in our system, and now we can start working with it by importing it into a Python program. ImplementationNow, we will use the yfinance module in our Python program so that we can collect the financial data from Yahoo using it and understand its implementation. When we are using the yfinance module in our program, we have to pass the ticker as an argument inside the function (Here, Ticker is referred to as the ticker of a company). Note: A ticker is basically a stock symbol or unique series of alphabets for the company names, and it is assigned to add an extra security layer for trading purposes. Look at the following examples of tickers that we will use in the yfinance module:
Now, let's use the yfinance module in various example programs so that we can understand its function and implementation easily. Look at the following example programs using the yfinance module in them for collecting data: Example 1: Look at the following Python program where we will retrieve the financial data of Facebook from Yahoo finance: Output: {'zip': '94025', 'sector': 'Communication Services', 'fullTimeEmployees': 63404, 'longBusinessSummary': "Facebook, Inc. develops products that enable people to connect and share with friends and family through mobile devices, personal computers, virtual reality headsets, and in-home devices worldwide. The company's products include Facebook that enables people to connect, share, discover, and communicate with each other on mobile devices and personal computers; Instagram, a community for sharing photos, videos, and private messages; Messenger, a messaging application for people to connect with friends, family, groups, and businesses across platforms and devices; and WhatsApp, a messaging application that is used by people and businesses to communicate in a private way. It also provides Facebook Reality Labs, an augmented and virtual reality product that help people feel connected, anytime, and anywhere. Facebook, Inc. was founded in 2004 and is headquartered in Menlo Park, California.", 'city': 'Menlo Park', 'phone': '650-543-4800', 'state': 'CA', 'country': 'United States', 'companyOfficers': [], 'website': 'http://investor.fb.com', 'maxAge': 1, 'address1': '1601 Willow Road', 'industry': 'Internet Content & Information', 'ebitdaMargins': 0.49698, 'profitMargins': 0.37175998, 'grossMargins': 0.80977, 'operatingCashflow': 49358000128, 'revenueGrowth': 0.556, 'operatingMargins': 0.42523, 'ebitda': 52079001600, 'targetLowPrice': 225, 'recommendationKey': 'buy', 'grossProfits': 69273000000, 'freeCashflow': 22740000768, 'targetMedianPrice': 425, 'currentPrice': 330.05, 'earningsGrowth': 1.006, 'currentRatio': 5.425, 'returnOnAssets': 0.17950001, 'numberOfAnalystOpinions': 50, 'targetMeanPrice': 417.22, 'debtToEquity': 9.089, 'returnOnEquity': 0.31332, 'targetHighPrice': 500, 'totalCash': 64079998976, 'totalDebt': 12563000320, 'totalRevenue': 104789999616, 'totalCashPerShare': 22.728, 'financialCurrency': 'USD', 'revenuePerShare': 36.82, 'quickRatio': 5.095, 'recommendationMean': 1.9, 'exchange': 'NMS', 'shortName': 'Facebook, Inc.', 'longName': 'Facebook, Inc.', 'exchangeTimezone Explanation: We have firstly imported the yfinance module as yahooFin in the program to use its functionality. Then, we have used the yahooFin with the FB Ticker function to collect all the financial information of the Facebook page from Yahoo. After retrieving the financial information from the Facebook page of Yahoo, we have printed this information in the output when the program is executed. As we can see in the output, we have printed all the financial data as a whole Python dictionary. Collecting Financial Key Metrics from Yahoo:Other than retrieving the financial information from Yahoo sites (as we have performed in example 1), we can even collect various financial key metrics. These financial key metrics can be Price Earnings Ratio, Company Beta and Company Sector etc., from the whole Python dictionary that we printed in the above first example. Let's retrieve the financial key metrics by using the yfinance module. Example 2: Look at the following Python program where we will retrieve the financial key metrics from the Yahoo using yfinance module: Output: The Company Sector Metric key we collected from the page: Communication Services The Price Earnings Ratio (PER) we got from the financial data of page: 26.211199 The Company Beta key we retrieved from page: 1.295305 Explanation: Instead of retrieving complete financial data information from the page, we have retrieved only a limited set of financial key metrics in this program. We have firstly initialized three variables (keyPer, comSecKey and comBetaKey) and stored the values of financial key metrics from the financial data we have collected from the Facebook page. We have retrieved Price Earning Ratio, Company Beta and Company Sector financial metric keys in this example and stored them in the respective variable. After storing the financial metric keys, we have printed them in the output as a result, and as we can see in the output, details are successfully printed. Splitting the financial metric keys:In the first and second examples, we have printed the financial data and metric keys from Yahoo as they are some dictionary values. But we can even split these values by means of key-value pair, and then we can print the split result. In the following example, we will print the financial metric keys values by splitting them, and we will split them by looping over them. Example 3: Look at the following Python program, where we will split the financial metric keys into key-value pairs: Output: Items from the financial data of the Facebook page in the key-value page: zip : 94025 sector : Communication Services fullTimeEmployees : 63404 longBusinessSummary : Facebook, Inc. develops products that enable people to connect and share with friends and family through mobile devices, personal computers, virtual reality headsets, and in-home devices worldwide. The company's products include Facebook that enables people to connect, share, discover, and communicate with each other on mobile devices and personal computers; Instagram, a community for sharing photos, videos, and private messages; Messenger, a messaging application for people to connect with friends, family, groups, and businesses across platforms and devices; and WhatsApp, a messaging application that is used by people and businesses to communicate in a private way. It also provides Facebook Reality Labs, an augmented and virtual reality product that help people feel connected, anytime, and anywhere. Facebook, Inc. was founded in 2004 and is headquartered in Menlo Park, California. city : Menlo Park phone : 650-543-4800 state : CA country : United States companyOfficers : [] website : http://investor.fb.com maxAge : 1 address1 : 1601 Willow Road industry : Internet Content & Information ebitdaMargins : 0.49698 profitMargins : 0.37175998 grossMargins : 0.80977 operatingCashflow : 49358000128 revenueGrowth : 0.556 operatingMargins : 0.42523 ebitda : 52079001600 Explanation: After retrieving information from the Facebook financial data from Yahoo, we have used for loop on it. With the help of for loop, we have looped over the data, and then we split the data items into key-value pairs. In last, we have printed these key-value pairs in the output as a result of the program. Retrieving Historical Market Prices:We can even retrieve the historical market prices from Yahoo financial data, and then we can even print this information in the output. Example 4: Let's first look at the following example, and then we will understand more about retrieving historical market prices: Output: Historical Market Prices data from the Facebook page financial data of Yahoo: Open High Low Close Volume \ Date 2012-05-18 42.049999 45.000000 38.000000 38.230000 573576400 2012-05-21 36.529999 36.660000 33.000000 34.029999 168192700 2012-05-22 32.610001 33.590000 30.940001 31.000000 101786600 2012-05-23 31.370001 32.500000 31.360001 32.000000 73600000 2012-05-24 32.950001 33.209999 31.770000 33.029999 50237200 ... ... ... ... ... ... 2021-10-04 335.529999 335.940002 322.700012 326.230011 42885000 2021-10-05 328.579987 335.179993 326.160004 332.959991 35377900 2021-10-06 329.739990 334.380005 325.799988 333.640015 26443000 2021-10-07 337.000000 338.839996 328.980011 329.220001 28307500 2021-10-08 331.510010 333.399994 328.709991 330.049988 15934300 Dividends Stock Splits Date 2012-05-18 0 0 2012-05-21 0 0 2012-05-22 0 0 2012-05-23 0 0 2012-05-24 0 0 ... ... ... 2021-10-04 0 0 2021-10-05 0 0 2021-10-06 0 0 2021-10-07 0 0 2021-10-08 0 0 [2364 rows x 7 columns] Explanation: In this example, we have imported the historical market prices from Facebook's financial data from the Yahoo page we retrieved in the program. We have retrieved the historical market prices from Facebook's financial data using the history() function with the FB Ticker, and then we have stored the information inside the variable we have initialized, i.e., maxHisMP. In last, we have printed this historical market prices information in the output as a result of the program. We can see the information regarding the history of market prices for the maximum period available in the Yahoo financial data. Note: The 'max' we have defined in the history function with the FB ticker is used to collect the history of market prices available for the maximum time period in Yahoo. The max keyword will retrieve the history of daily price changes for Facebook available in Yahoo.Now, we have learned that how we can bring the history of market prices from Yahoo's financial data using its history() function. But here is a thing that we can even minimize our data which we are getting from history() to reduce its complexity. We can do this by giving a fixed time argument inside the history() function and retrieve only a small amount of data from Yahoo. Here, we are going to perform this function in two ways which are following: 1. Collecting fixed time data since Last '1 day' or '5 day' or '1 month' or '3 month' etc., by providing fixed time argument inside the history function. Let's understand this by using the fixed time argument inside a program and then retrieving market prices from Yahoo. Example 5: Look at the following Python program where we will retrieve the last 3 month's history of market prices from Facebook: Output: Historical Market Prices data of last 3 months from the Facebook page of Yahoo: Open High Low Close Volume \ Date 2021-07-09 345.320007 350.709991 345.269989 350.420013 13018700 2021-07-12 351.230011 354.190002 349.640015 353.160004 10018600 2021-07-13 351.500000 358.489990 348.799988 352.089996 11456000 2021-07-14 354.559998 355.200012 346.730011 347.630005 13894200 2021-07-15 349.230011 349.230011 340.220001 344.459991 14781600 ... ... ... ... ... ... 2021-10-04 335.529999 335.940002 322.700012 326.230011 42885000 2021-10-05 328.579987 335.179993 326.160004 332.959991 35377900 2021-10-06 329.739990 334.380005 325.799988 333.640015 26443000 2021-10-07 337.000000 338.839996 328.980011 329.220001 28307500 2021-10-08 331.510010 333.399994 328.709991 330.049988 15934300 Dividends Stock Splits Date 2021-07-09 0 0 2021-07-12 0 0 2021-07-13 0 0 2021-07-14 0 0 2021-07-15 0 0 ... ... ... 2021-10-04 0 0 2021-10-05 0 0 2021-10-06 0 0 2021-10-07 0 0 2021-10-08 0 0 [65 rows x 7 columns] Explanation: We have used the same logic as we have used in the previous example program and collected the data of historical market prices from the Facebook page of Yahoo. But, in this program, instead of collecting the maximum data, we have limited our data by giving the argument '3mo' inside the history function so that it will only retrieve the history of market prices for the last three months only. And then, we printed this last three months market prices history in the output as a result. As we can see in the output, the history of market prices of the Facebook page in Yahoo since only last three months have been printed. Note: When we have to collect the data from a past fixed time, then we cannot give any duration argument in the history function because it will not be a valid argument. We have the following valid fixed time period arguments for the history function of the yfinance module: max, ytd, 10y, 5y, 2y, 1y, 6mo, 3mo, 1mo, 5d and 1d. We cannot give any other time period argument inside the history() function as it will be treated as an invalid argument, and no data of market prices history will be retrieved.2. Collecting fixed data from the history() function by giving start time and end time as the arguments of this history() function. We can retrieve the data of the time period which we want by defining starting and end time variables and then using these variables as the arguments of the history() function. Let's understand this by using these defined time arguments inside a program and then retrieving market prices history from Yahoo. Example 6: Look at the following Python program where we will retrieve history of market prices from Facebook for a user defined period of time: Output: Historical Market Prices data of the time period we defined from the financial data of Facebook page: Open High Low Close Volume \ Date 2021-04-26 303.339996 305.799988 301.559998 303.040009 16172600 2021-04-27 304.279999 305.339996 301.109985 303.570007 15309300 2021-04-28 307.359985 310.920013 305.369995 307.100006 33907200 2021-04-29 330.119995 331.809998 321.609985 329.510010 56526800 2021-04-30 326.140015 329.820007 324.500000 325.079987 26332400 ... ... ... ... ... ... 2021-07-30 354.000000 360.730011 352.940002 356.299988 15966700 2021-08-02 358.100006 359.399994 350.739990 351.950012 13180400 2021-08-03 352.730011 353.769989 347.700012 351.239990 12406100 2021-08-04 352.420013 360.480011 351.510010 358.920013 14180600 2021-08-05 359.640015 363.899994 356.899994 362.970001 10247200 Dividends Stock Splits Date 2021-04-26 0 0 2021-04-27 0 0 2021-04-28 0 0 2021-04-29 0 0 2021-04-30 0 0 ... ... ... 2021-07-30 0 0 2021-08-02 0 0 2021-08-03 0 0 2021-08-04 0 0 2021-08-05 0 0 [72 rows x 7 columns] Explanation: We have imported the yfinance as well as datetime module in this program so that we can use the datetime() function of it. Then, we defined two variables where we set start and end dates in them using the datetime function of the datetime module. Then, we used these variables inside the history() function as the start and end date of retrieving data from Yahoo. We have used the start and end keyword inside the history() to set the starting date and ending date for collecting the data. That's how we will retrieve a user fixed time's market prices history from Yahoo. In last, we have printed the minimized data in the output as a result. We can see in the output that we have got the fixed time (which we set in the program) history of market prices from Yahoo. ConclusionIn this tutorial, we have discussed how we can use the yfinance module in a Python program to retrieve simply Yahoo's financial data or various aspects of financial data of Yahoo by using functions given in the module and then we can print this data for further use. Next TopicDifflib module in Python |