Skip to content

Instantly share code, notes, and snippets.

@CY0xZ
Created August 27, 2023 16:04
Show Gist options
  • Save CY0xZ/3805c6f845f0d2084286917304646694 to your computer and use it in GitHub Desktop.
Save CY0xZ/3805c6f845f0d2084286917304646694 to your computer and use it in GitHub Desktop.
Evaluate a Stock Investment.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyOAdR5Py3x+HMtl5N/yIdWs",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/CY0xZ/3805c6f845f0d2084286917304646694/evaluate-a-stock-investment.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"metadata": {
"id": "GjYh7u4jsWul"
},
"source": [
"- Twitter: [@__CY0xZ__](https://twitter.com/__CY0xZ__)"
]
},
{
"cell_type": "code",
"metadata": {
"id": "dCfANOoZozQi"
},
"source": [
"########### Evaluate a Stock Investment ############"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "rf4sdHMXbPGO"
},
"source": [
"'''\n",
"EXECUTE MODE 1: Right Button of Mouse --> \"Ejecutar celda Seleccionada\"\n",
"EXECUTE MODE 2 (FAST MODE): Mayuscula + Enter\n",
"'''"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "e2qoUWJkFtuj"
},
"source": [
"# Importing required modules\n",
"import pandas as pd\n",
"import numpy as np\n",
"import matplotlib.pyplot as plt\n",
"import numpy as np\n",
"\n",
"# Settings to produce nice plots in a Jupyter notebook\n",
"plt.style.use('fivethirtyeight')\n",
"%matplotlib inline\n",
"plt.rcParams['figure.figsize'] = [12, 6]\n",
"import seaborn as sns\n",
"\n",
"# To extract and parse fundamental data from finviz website\n",
"import requests\n",
"from bs4 import BeautifulSoup as bs\n",
"\n",
"# For parsing financial statements data from financialmodelingprep api\n",
"from urllib.request import urlopen\n",
"import json\n",
"def get_jsonparsed_data(url):\n",
" response = urlopen(url)\n",
" data = response.read().decode(\"utf-8\")\n",
" return json.loads(data)\n",
"\n",
"# Financialmodelingprep api url\n",
"base_url = \"https://financialmodelingprep.com/api/v3/\""
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"id": "JUlJnxykmRHo"
},
"source": [
"\n",
"apiKey = \"2fa97c97cbbd30ce330c7396b8156ded\"\n",
"ticker = 'JNJ'"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 340
},
"id": "oEFl3LSumcFq",
"outputId": "f157d85e-f0a6-4e5d-f910-990b1de0cb49"
},
"source": [
"income_statement = pd.DataFrame(get_jsonparsed_data(base_url+'income-statement/' + ticker + '?apikey=' + apiKey))\n",
"income_statement = income_statement.set_index('date')\n",
"income_statement = income_statement.apply(pd.to_numeric, errors='coerce')\n",
"\n",
"income_statement.iloc[:,4:]\n",
"#.iloc[:,4:] is just there to remove irrelevant columns"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>period</th>\n",
" <th>revenue</th>\n",
" <th>costOfRevenue</th>\n",
" <th>grossProfit</th>\n",
" <th>grossProfitRatio</th>\n",
" <th>researchAndDevelopmentExpenses</th>\n",
" <th>generalAndAdministrativeExpenses</th>\n",
" <th>sellingAndMarketingExpenses</th>\n",
" <th>otherExpenses</th>\n",
" <th>operatingExpenses</th>\n",
" <th>costAndExpenses</th>\n",
" <th>interestExpense</th>\n",
" <th>depreciationAndAmortization</th>\n",
" <th>ebitda</th>\n",
" <th>ebitdaratio</th>\n",
" <th>operatingIncome</th>\n",
" <th>operatingIncomeRatio</th>\n",
" <th>totalOtherIncomeExpensesNet</th>\n",
" <th>incomeBeforeTax</th>\n",
" <th>incomeBeforeTaxRatio</th>\n",
" <th>incomeTaxExpense</th>\n",
" <th>netIncome</th>\n",
" <th>netIncomeRatio</th>\n",
" <th>eps</th>\n",
" <th>epsdiluted</th>\n",
" <th>weightedAverageShsOut</th>\n",
" <th>weightedAverageShsOutDil</th>\n",
" <th>link</th>\n",
" <th>finalLink</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2019-12-29</th>\n",
" <td>NaN</td>\n",
" <td>82059000000</td>\n",
" <td>27456000000</td>\n",
" <td>54603000000</td>\n",
" <td>0.665411</td>\n",
" <td>11355000000</td>\n",
" <td>22178000000</td>\n",
" <td>22178000000</td>\n",
" <td>2469000000</td>\n",
" <td>37275000000</td>\n",
" <td>64731000000</td>\n",
" <td>318000000</td>\n",
" <td>7009000000</td>\n",
" <td>24655000000</td>\n",
" <td>0.300455</td>\n",
" <td>17328000000</td>\n",
" <td>0.211165</td>\n",
" <td>2525000000</td>\n",
" <td>17328000000</td>\n",
" <td>0.211165</td>\n",
" <td>2209000000</td>\n",
" <td>15119000000</td>\n",
" <td>0.184245</td>\n",
" <td>5.632380</td>\n",
" <td>5.63238</td>\n",
" <td>2645000000</td>\n",
" <td>2684000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-12-30</th>\n",
" <td>NaN</td>\n",
" <td>81581000000</td>\n",
" <td>26986000000</td>\n",
" <td>54595000000</td>\n",
" <td>0.669212</td>\n",
" <td>10775000000</td>\n",
" <td>22540000000</td>\n",
" <td>22540000000</td>\n",
" <td>1061000000</td>\n",
" <td>36596000000</td>\n",
" <td>63582000000</td>\n",
" <td>1005000000</td>\n",
" <td>6929000000</td>\n",
" <td>25933000000</td>\n",
" <td>0.317880</td>\n",
" <td>17999000000</td>\n",
" <td>0.220627</td>\n",
" <td>1405000000</td>\n",
" <td>17999000000</td>\n",
" <td>0.220627</td>\n",
" <td>2702000000</td>\n",
" <td>15297000000</td>\n",
" <td>0.187507</td>\n",
" <td>5.605970</td>\n",
" <td>5.60597</td>\n",
" <td>2681000000</td>\n",
" <td>2728000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-31</th>\n",
" <td>NaN</td>\n",
" <td>76450000000</td>\n",
" <td>25354000000</td>\n",
" <td>51096000000</td>\n",
" <td>0.668358</td>\n",
" <td>10962000000</td>\n",
" <td>21420000000</td>\n",
" <td>0</td>\n",
" <td>-183000000</td>\n",
" <td>32382000000</td>\n",
" <td>57736000000</td>\n",
" <td>934000000</td>\n",
" <td>5642000000</td>\n",
" <td>24558000000</td>\n",
" <td>0.321230</td>\n",
" <td>18714000000</td>\n",
" <td>0.231171</td>\n",
" <td>-492000000</td>\n",
" <td>17673000000</td>\n",
" <td>0.231171</td>\n",
" <td>16373000000</td>\n",
" <td>1300000000</td>\n",
" <td>0.017005</td>\n",
" <td>0.484618</td>\n",
" <td>0.47000</td>\n",
" <td>2682525000</td>\n",
" <td>2745300000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-01</th>\n",
" <td>NaN</td>\n",
" <td>71890000000</td>\n",
" <td>21640000000</td>\n",
" <td>50250000000</td>\n",
" <td>0.698985</td>\n",
" <td>9095000000</td>\n",
" <td>19945000000</td>\n",
" <td>19945000000</td>\n",
" <td>281000000</td>\n",
" <td>30447000000</td>\n",
" <td>52087000000</td>\n",
" <td>726000000</td>\n",
" <td>3754000000</td>\n",
" <td>24283000000</td>\n",
" <td>0.337780</td>\n",
" <td>19803000000</td>\n",
" <td>0.275463</td>\n",
" <td>484000000</td>\n",
" <td>19803000000</td>\n",
" <td>0.275463</td>\n",
" <td>3263000000</td>\n",
" <td>16540000000</td>\n",
" <td>0.230074</td>\n",
" <td>5.930650</td>\n",
" <td>5.93065</td>\n",
" <td>2737000000</td>\n",
" <td>2788000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-03</th>\n",
" <td>NaN</td>\n",
" <td>70074000000</td>\n",
" <td>21455000000</td>\n",
" <td>48619000000</td>\n",
" <td>0.693824</td>\n",
" <td>9047000000</td>\n",
" <td>21203000000</td>\n",
" <td>21203000000</td>\n",
" <td>-2097000000</td>\n",
" <td>29423000000</td>\n",
" <td>50878000000</td>\n",
" <td>552000000</td>\n",
" <td>3746000000</td>\n",
" <td>23494000000</td>\n",
" <td>0.335274</td>\n",
" <td>19196000000</td>\n",
" <td>0.273939</td>\n",
" <td>-2064000000</td>\n",
" <td>19196000000</td>\n",
" <td>0.273939</td>\n",
" <td>3787000000</td>\n",
" <td>15409000000</td>\n",
" <td>0.219896</td>\n",
" <td>5.477980</td>\n",
" <td>5.47798</td>\n",
" <td>2771000000</td>\n",
" <td>2812000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" period revenue ... link finalLink\n",
"date ... \n",
"2019-12-29 NaN 82059000000 ... NaN NaN\n",
"2018-12-30 NaN 81581000000 ... NaN NaN\n",
"2017-12-31 NaN 76450000000 ... NaN NaN\n",
"2017-01-01 NaN 71890000000 ... NaN NaN\n",
"2016-01-03 NaN 70074000000 ... NaN NaN\n",
"\n",
"[5 rows x 29 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 87
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 292
},
"id": "VnGX9kntmhrQ",
"outputId": "0879ce50-e3a7-4585-ceb8-29d5b9261b46"
},
"source": [
"q_income_statement = pd.DataFrame(get_jsonparsed_data(base_url+'income-statement/' + ticker + '?period=quarter' + '&apikey=' + apiKey))\n",
"q_income_statement = q_income_statement.set_index('date').iloc[:4] # extract for last 4 quarters\n",
"q_income_statement = q_income_statement.apply(pd.to_numeric, errors='coerce')\n",
"\n",
"q_income_statement.iloc[:,4:]"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>period</th>\n",
" <th>revenue</th>\n",
" <th>costOfRevenue</th>\n",
" <th>grossProfit</th>\n",
" <th>grossProfitRatio</th>\n",
" <th>researchAndDevelopmentExpenses</th>\n",
" <th>generalAndAdministrativeExpenses</th>\n",
" <th>sellingAndMarketingExpenses</th>\n",
" <th>otherExpenses</th>\n",
" <th>operatingExpenses</th>\n",
" <th>costAndExpenses</th>\n",
" <th>interestExpense</th>\n",
" <th>depreciationAndAmortization</th>\n",
" <th>ebitda</th>\n",
" <th>ebitdaratio</th>\n",
" <th>operatingIncome</th>\n",
" <th>operatingIncomeRatio</th>\n",
" <th>totalOtherIncomeExpensesNet</th>\n",
" <th>incomeBeforeTax</th>\n",
" <th>incomeBeforeTaxRatio</th>\n",
" <th>incomeTaxExpense</th>\n",
" <th>netIncome</th>\n",
" <th>netIncomeRatio</th>\n",
" <th>eps</th>\n",
" <th>epsdiluted</th>\n",
" <th>weightedAverageShsOut</th>\n",
" <th>weightedAverageShsOutDil</th>\n",
" <th>link</th>\n",
" <th>finalLink</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>2020-09-27</th>\n",
" <td>NaN</td>\n",
" <td>21082000000</td>\n",
" <td>6972000000</td>\n",
" <td>14110000000</td>\n",
" <td>0.669291</td>\n",
" <td>2840000000</td>\n",
" <td>5431000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.0</td>\n",
" <td>8271000000</td>\n",
" <td>15243000000</td>\n",
" <td>44000000</td>\n",
" <td>1.818000e+09</td>\n",
" <td>6219000000</td>\n",
" <td>0.294991</td>\n",
" <td>4401000000</td>\n",
" <td>0.208756</td>\n",
" <td>953000000</td>\n",
" <td>4401000000</td>\n",
" <td>0.208756</td>\n",
" <td>847000000</td>\n",
" <td>3554000000</td>\n",
" <td>0.168580</td>\n",
" <td>1.350000</td>\n",
" <td>1.33000</td>\n",
" <td>2633000000</td>\n",
" <td>2670800000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-06-30</th>\n",
" <td>NaN</td>\n",
" <td>18336000000</td>\n",
" <td>6579000000</td>\n",
" <td>11757000000</td>\n",
" <td>0.641198</td>\n",
" <td>2713000000</td>\n",
" <td>4993000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>76000000.0</td>\n",
" <td>7706000000</td>\n",
" <td>14285000000</td>\n",
" <td>45000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>5872000000</td>\n",
" <td>0.320244</td>\n",
" <td>4051000000</td>\n",
" <td>0.214878</td>\n",
" <td>-85000000</td>\n",
" <td>3940000000</td>\n",
" <td>0.214878</td>\n",
" <td>314000000</td>\n",
" <td>3626000000</td>\n",
" <td>0.197753</td>\n",
" <td>1.377462</td>\n",
" <td>1.36000</td>\n",
" <td>2632377000</td>\n",
" <td>2665500000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-06-28</th>\n",
" <td>NaN</td>\n",
" <td>18336000000</td>\n",
" <td>6557000000</td>\n",
" <td>11779000000</td>\n",
" <td>0.642397</td>\n",
" <td>2707000000</td>\n",
" <td>4993000000</td>\n",
" <td>0.000000e+00</td>\n",
" <td>-132000000.0</td>\n",
" <td>7839000000</td>\n",
" <td>14396000000</td>\n",
" <td>45000000</td>\n",
" <td>1.726000e+09</td>\n",
" <td>5711000000</td>\n",
" <td>0.311464</td>\n",
" <td>3940000000</td>\n",
" <td>0.214878</td>\n",
" <td>358000000</td>\n",
" <td>3940000000</td>\n",
" <td>0.214878</td>\n",
" <td>314000000</td>\n",
" <td>3626000000</td>\n",
" <td>0.197753</td>\n",
" <td>1.360350</td>\n",
" <td>1.36035</td>\n",
" <td>2665500000</td>\n",
" <td>2665500000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2020-03-29</th>\n",
" <td>NaN</td>\n",
" <td>20691000000</td>\n",
" <td>7047000000</td>\n",
" <td>13644000000</td>\n",
" <td>0.659417</td>\n",
" <td>2580000000</td>\n",
" <td>5203000000</td>\n",
" <td>5.203000e+09</td>\n",
" <td>-35000000.0</td>\n",
" <td>7135000000</td>\n",
" <td>14182000000</td>\n",
" <td>25000000</td>\n",
" <td>1.747000e+09</td>\n",
" <td>8581000000</td>\n",
" <td>0.414721</td>\n",
" <td>6509000000</td>\n",
" <td>0.314581</td>\n",
" <td>-679000000</td>\n",
" <td>6509000000</td>\n",
" <td>0.314581</td>\n",
" <td>1013000000</td>\n",
" <td>5796000000</td>\n",
" <td>0.280122</td>\n",
" <td>2.169970</td>\n",
" <td>2.16997</td>\n",
" <td>2671000000</td>\n",
" <td>2671000000</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" period revenue ... link finalLink\n",
"date ... \n",
"2020-09-27 NaN 21082000000 ... NaN NaN\n",
"2020-06-30 NaN 18336000000 ... NaN NaN\n",
"2020-06-28 NaN 18336000000 ... NaN NaN\n",
"2020-03-29 NaN 20691000000 ... NaN NaN\n",
"\n",
"[4 rows x 29 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 88
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 371
},
"id": "Fn7vmHl3mleg",
"outputId": "7c93f637-b5c4-443b-c508-c9e3348c9803"
},
"source": [
"ttm_income_statement = q_income_statement.sum() # sum up last 4 quarters to get TTM cash flow\n",
"\n",
"ttm_income_statement['netIncomeRatio'] = q_income_statement['netIncomeRatio'][-1]\n",
"ttm_income_statement['grossProfitRatio'] = q_income_statement['grossProfitRatio'][-1]\n",
"ttm_income_statement['ebitdaratio'] = q_income_statement['ebitdaratio'][-1]\n",
"ttm_income_statement['operatingIncomeRatio'] = q_income_statement['operatingIncomeRatio'][-1]\n",
"income_statement = income_statement.iloc[::-1].append(ttm_income_statement.rename('TTM'))\n",
"#.iloc[::-1] is for reversing row of dataframe to show most recent ones first\n",
"\n",
"income_statement.iloc[::-1,4:]"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>period</th>\n",
" <th>revenue</th>\n",
" <th>costOfRevenue</th>\n",
" <th>grossProfit</th>\n",
" <th>grossProfitRatio</th>\n",
" <th>researchAndDevelopmentExpenses</th>\n",
" <th>generalAndAdministrativeExpenses</th>\n",
" <th>sellingAndMarketingExpenses</th>\n",
" <th>otherExpenses</th>\n",
" <th>operatingExpenses</th>\n",
" <th>costAndExpenses</th>\n",
" <th>interestExpense</th>\n",
" <th>depreciationAndAmortization</th>\n",
" <th>ebitda</th>\n",
" <th>ebitdaratio</th>\n",
" <th>operatingIncome</th>\n",
" <th>operatingIncomeRatio</th>\n",
" <th>totalOtherIncomeExpensesNet</th>\n",
" <th>incomeBeforeTax</th>\n",
" <th>incomeBeforeTaxRatio</th>\n",
" <th>incomeTaxExpense</th>\n",
" <th>netIncome</th>\n",
" <th>netIncomeRatio</th>\n",
" <th>eps</th>\n",
" <th>epsdiluted</th>\n",
" <th>weightedAverageShsOut</th>\n",
" <th>weightedAverageShsOutDil</th>\n",
" <th>link</th>\n",
" <th>finalLink</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>TTM</th>\n",
" <td>0.0</td>\n",
" <td>7.844500e+10</td>\n",
" <td>2.715500e+10</td>\n",
" <td>5.129000e+10</td>\n",
" <td>0.659417</td>\n",
" <td>1.084000e+10</td>\n",
" <td>2.062000e+10</td>\n",
" <td>5.203000e+09</td>\n",
" <td>-9.100000e+07</td>\n",
" <td>3.095100e+10</td>\n",
" <td>5.810600e+10</td>\n",
" <td>1.590000e+08</td>\n",
" <td>5.291000e+09</td>\n",
" <td>2.638300e+10</td>\n",
" <td>0.414721</td>\n",
" <td>1.890100e+10</td>\n",
" <td>0.314581</td>\n",
" <td>5.470000e+08</td>\n",
" <td>1.879000e+10</td>\n",
" <td>0.953093</td>\n",
" <td>2.488000e+09</td>\n",
" <td>1.660200e+10</td>\n",
" <td>0.280122</td>\n",
" <td>6.257782</td>\n",
" <td>6.22032</td>\n",
" <td>1.060188e+10</td>\n",
" <td>1.067280e+10</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-29</th>\n",
" <td>NaN</td>\n",
" <td>8.205900e+10</td>\n",
" <td>2.745600e+10</td>\n",
" <td>5.460300e+10</td>\n",
" <td>0.665411</td>\n",
" <td>1.135500e+10</td>\n",
" <td>2.217800e+10</td>\n",
" <td>2.217800e+10</td>\n",
" <td>2.469000e+09</td>\n",
" <td>3.727500e+10</td>\n",
" <td>6.473100e+10</td>\n",
" <td>3.180000e+08</td>\n",
" <td>7.009000e+09</td>\n",
" <td>2.465500e+10</td>\n",
" <td>0.300455</td>\n",
" <td>1.732800e+10</td>\n",
" <td>0.211165</td>\n",
" <td>2.525000e+09</td>\n",
" <td>1.732800e+10</td>\n",
" <td>0.211165</td>\n",
" <td>2.209000e+09</td>\n",
" <td>1.511900e+10</td>\n",
" <td>0.184245</td>\n",
" <td>5.632380</td>\n",
" <td>5.63238</td>\n",
" <td>2.645000e+09</td>\n",
" <td>2.684000e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-12-30</th>\n",
" <td>NaN</td>\n",
" <td>8.158100e+10</td>\n",
" <td>2.698600e+10</td>\n",
" <td>5.459500e+10</td>\n",
" <td>0.669212</td>\n",
" <td>1.077500e+10</td>\n",
" <td>2.254000e+10</td>\n",
" <td>2.254000e+10</td>\n",
" <td>1.061000e+09</td>\n",
" <td>3.659600e+10</td>\n",
" <td>6.358200e+10</td>\n",
" <td>1.005000e+09</td>\n",
" <td>6.929000e+09</td>\n",
" <td>2.593300e+10</td>\n",
" <td>0.317880</td>\n",
" <td>1.799900e+10</td>\n",
" <td>0.220627</td>\n",
" <td>1.405000e+09</td>\n",
" <td>1.799900e+10</td>\n",
" <td>0.220627</td>\n",
" <td>2.702000e+09</td>\n",
" <td>1.529700e+10</td>\n",
" <td>0.187507</td>\n",
" <td>5.605970</td>\n",
" <td>5.60597</td>\n",
" <td>2.681000e+09</td>\n",
" <td>2.728000e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-31</th>\n",
" <td>NaN</td>\n",
" <td>7.645000e+10</td>\n",
" <td>2.535400e+10</td>\n",
" <td>5.109600e+10</td>\n",
" <td>0.668358</td>\n",
" <td>1.096200e+10</td>\n",
" <td>2.142000e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>-1.830000e+08</td>\n",
" <td>3.238200e+10</td>\n",
" <td>5.773600e+10</td>\n",
" <td>9.340000e+08</td>\n",
" <td>5.642000e+09</td>\n",
" <td>2.455800e+10</td>\n",
" <td>0.321230</td>\n",
" <td>1.871400e+10</td>\n",
" <td>0.231171</td>\n",
" <td>-4.920000e+08</td>\n",
" <td>1.767300e+10</td>\n",
" <td>0.231171</td>\n",
" <td>1.637300e+10</td>\n",
" <td>1.300000e+09</td>\n",
" <td>0.017005</td>\n",
" <td>0.484618</td>\n",
" <td>0.47000</td>\n",
" <td>2.682525e+09</td>\n",
" <td>2.745300e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-01</th>\n",
" <td>NaN</td>\n",
" <td>7.189000e+10</td>\n",
" <td>2.164000e+10</td>\n",
" <td>5.025000e+10</td>\n",
" <td>0.698985</td>\n",
" <td>9.095000e+09</td>\n",
" <td>1.994500e+10</td>\n",
" <td>1.994500e+10</td>\n",
" <td>2.810000e+08</td>\n",
" <td>3.044700e+10</td>\n",
" <td>5.208700e+10</td>\n",
" <td>7.260000e+08</td>\n",
" <td>3.754000e+09</td>\n",
" <td>2.428300e+10</td>\n",
" <td>0.337780</td>\n",
" <td>1.980300e+10</td>\n",
" <td>0.275463</td>\n",
" <td>4.840000e+08</td>\n",
" <td>1.980300e+10</td>\n",
" <td>0.275463</td>\n",
" <td>3.263000e+09</td>\n",
" <td>1.654000e+10</td>\n",
" <td>0.230074</td>\n",
" <td>5.930650</td>\n",
" <td>5.93065</td>\n",
" <td>2.737000e+09</td>\n",
" <td>2.788000e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-03</th>\n",
" <td>NaN</td>\n",
" <td>7.007400e+10</td>\n",
" <td>2.145500e+10</td>\n",
" <td>4.861900e+10</td>\n",
" <td>0.693824</td>\n",
" <td>9.047000e+09</td>\n",
" <td>2.120300e+10</td>\n",
" <td>2.120300e+10</td>\n",
" <td>-2.097000e+09</td>\n",
" <td>2.942300e+10</td>\n",
" <td>5.087800e+10</td>\n",
" <td>5.520000e+08</td>\n",
" <td>3.746000e+09</td>\n",
" <td>2.349400e+10</td>\n",
" <td>0.335274</td>\n",
" <td>1.919600e+10</td>\n",
" <td>0.273939</td>\n",
" <td>-2.064000e+09</td>\n",
" <td>1.919600e+10</td>\n",
" <td>0.273939</td>\n",
" <td>3.787000e+09</td>\n",
" <td>1.540900e+10</td>\n",
" <td>0.219896</td>\n",
" <td>5.477980</td>\n",
" <td>5.47798</td>\n",
" <td>2.771000e+09</td>\n",
" <td>2.812000e+09</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" period revenue ... link finalLink\n",
"date ... \n",
"TTM 0.0 7.844500e+10 ... 0.0 0.0\n",
"2019-12-29 NaN 8.205900e+10 ... NaN NaN\n",
"2018-12-30 NaN 8.158100e+10 ... NaN NaN\n",
"2017-12-31 NaN 7.645000e+10 ... NaN NaN\n",
"2017-01-01 NaN 7.189000e+10 ... NaN NaN\n",
"2016-01-03 NaN 7.007400e+10 ... NaN NaN\n",
"\n",
"[6 rows x 29 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 89
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 371
},
"id": "hPDV6JJJmq2h",
"outputId": "ac50b980-3b47-4a31-f36e-9630fd8c77ef"
},
"source": [
"cash_flow_statement = pd.DataFrame(get_jsonparsed_data(base_url+'cash-flow-statement/' + ticker + '?apikey=' + apiKey))\n",
"cash_flow_statement = cash_flow_statement.set_index('date')\n",
"cash_flow_statement = cash_flow_statement.apply(pd.to_numeric, errors='coerce')\n",
"\n",
"\n",
"q_cash_flow_statement = pd.DataFrame(get_jsonparsed_data(base_url+'cash-flow-statement/' + ticker + '?period=quarter' + '&apikey=' + apiKey))\n",
"q_cash_flow_statement = q_cash_flow_statement.set_index('date').iloc[:4]\n",
"q_cash_flow_statement = q_cash_flow_statement.apply(pd.to_numeric, errors='coerce')\n",
"\n",
"ttm_cash_flow_statement = q_cash_flow_statement.sum()\n",
"cash_flow_statement = cash_flow_statement.iloc[::-1].append(ttm_cash_flow_statement.rename('TTM')).drop(['netIncome'], axis=1)\n",
"\n",
"cash_flow_statement.iloc[::-1,4:]"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>period</th>\n",
" <th>depreciationAndAmortization</th>\n",
" <th>deferredIncomeTax</th>\n",
" <th>stockBasedCompensation</th>\n",
" <th>changeInWorkingCapital</th>\n",
" <th>accountsReceivables</th>\n",
" <th>inventory</th>\n",
" <th>accountsPayables</th>\n",
" <th>otherWorkingCapital</th>\n",
" <th>otherNonCashItems</th>\n",
" <th>netCashProvidedByOperatingActivities</th>\n",
" <th>investmentsInPropertyPlantAndEquipment</th>\n",
" <th>acquisitionsNet</th>\n",
" <th>purchasesOfInvestments</th>\n",
" <th>salesMaturitiesOfInvestments</th>\n",
" <th>otherInvestingActivites</th>\n",
" <th>netCashUsedForInvestingActivites</th>\n",
" <th>debtRepayment</th>\n",
" <th>commonStockIssued</th>\n",
" <th>commonStockRepurchased</th>\n",
" <th>dividendsPaid</th>\n",
" <th>otherFinancingActivites</th>\n",
" <th>netCashUsedProvidedByFinancingActivities</th>\n",
" <th>effectOfForexChangesOnCash</th>\n",
" <th>netChangeInCash</th>\n",
" <th>cashAtEndOfPeriod</th>\n",
" <th>cashAtBeginningOfPeriod</th>\n",
" <th>operatingCashFlow</th>\n",
" <th>capitalExpenditure</th>\n",
" <th>freeCashFlow</th>\n",
" <th>link</th>\n",
" <th>finalLink</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>TTM</th>\n",
" <td>0.0</td>\n",
" <td>7.107000e+09</td>\n",
" <td>-9.680000e+08</td>\n",
" <td>1.005000e+09</td>\n",
" <td>9.560000e+09</td>\n",
" <td>-6.400000e+07</td>\n",
" <td>-637000000.0</td>\n",
" <td>1.668000e+09</td>\n",
" <td>4.769800e+10</td>\n",
" <td>-101000000.0</td>\n",
" <td>2.159100e+10</td>\n",
" <td>-3.284000e+09</td>\n",
" <td>-1.187000e+09</td>\n",
" <td>-1.956900e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>9.848000e+09</td>\n",
" <td>-1.426600e+10</td>\n",
" <td>-2.376000e+09</td>\n",
" <td>0.0</td>\n",
" <td>-2.244000e+09</td>\n",
" <td>-1.032300e+10</td>\n",
" <td>1.147800e+10</td>\n",
" <td>-4.548000e+09</td>\n",
" <td>-6.100000e+07</td>\n",
" <td>2.716000e+09</td>\n",
" <td>2.846200e+10</td>\n",
" <td>2.574600e+10</td>\n",
" <td>2.159100e+10</td>\n",
" <td>-1.810000e+09</td>\n",
" <td>1.830700e+10</td>\n",
" <td>0.0</td>\n",
" <td>0.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-29</th>\n",
" <td>NaN</td>\n",
" <td>7.009000e+09</td>\n",
" <td>-2.476000e+09</td>\n",
" <td>9.770000e+08</td>\n",
" <td>-5.493000e+09</td>\n",
" <td>-2.890000e+08</td>\n",
" <td>-277000000.0</td>\n",
" <td>4.060000e+09</td>\n",
" <td>9.310000e+09</td>\n",
" <td>-101000000.0</td>\n",
" <td>2.341600e+10</td>\n",
" <td>-3.498000e+09</td>\n",
" <td>-5.800000e+09</td>\n",
" <td>-6.746000e+09</td>\n",
" <td>0.000000e+00</td>\n",
" <td>9.841000e+09</td>\n",
" <td>-6.194000e+09</td>\n",
" <td>-2.823000e+09</td>\n",
" <td>0.0</td>\n",
" <td>-5.792000e+09</td>\n",
" <td>-9.917000e+09</td>\n",
" <td>1.471000e+09</td>\n",
" <td>-1.801500e+10</td>\n",
" <td>-9.000000e+06</td>\n",
" <td>-8.020000e+08</td>\n",
" <td>5.214000e+09</td>\n",
" <td>6.016000e+09</td>\n",
" <td>2.341600e+10</td>\n",
" <td>-3.498000e+09</td>\n",
" <td>1.991800e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-12-30</th>\n",
" <td>NaN</td>\n",
" <td>6.929000e+09</td>\n",
" <td>-1.016000e+09</td>\n",
" <td>9.780000e+08</td>\n",
" <td>2.252000e+09</td>\n",
" <td>-1.185000e+09</td>\n",
" <td>-644000000.0</td>\n",
" <td>3.951000e+09</td>\n",
" <td>1.480300e+10</td>\n",
" <td>988000000.0</td>\n",
" <td>2.220100e+10</td>\n",
" <td>-3.670000e+09</td>\n",
" <td>-9.000000e+08</td>\n",
" <td>-1.149400e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>1.289700e+10</td>\n",
" <td>-3.167000e+09</td>\n",
" <td>-1.555000e+09</td>\n",
" <td>0.0</td>\n",
" <td>-4.919000e+09</td>\n",
" <td>-9.494000e+09</td>\n",
" <td>-1.593000e+09</td>\n",
" <td>-1.851000e+10</td>\n",
" <td>-2.410000e+08</td>\n",
" <td>2.830000e+08</td>\n",
" <td>7.500000e+09</td>\n",
" <td>7.217000e+09</td>\n",
" <td>2.220100e+10</td>\n",
" <td>-3.670000e+09</td>\n",
" <td>1.853100e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-31</th>\n",
" <td>NaN</td>\n",
" <td>5.642000e+09</td>\n",
" <td>2.406000e+09</td>\n",
" <td>9.620000e+08</td>\n",
" <td>1.124100e+10</td>\n",
" <td>-6.330000e+08</td>\n",
" <td>581000000.0</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.0</td>\n",
" <td>2.105600e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>-6.153000e+09</td>\n",
" <td>2.811700e+10</td>\n",
" <td>1.598000e+09</td>\n",
" <td>0.000000e+00</td>\n",
" <td>-3.107000e+09</td>\n",
" <td>0.0</td>\n",
" <td>-6.358000e+09</td>\n",
" <td>-8.943000e+09</td>\n",
" <td>-1.880000e+08</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>-1.148000e+09</td>\n",
" <td>1.782400e+10</td>\n",
" <td>1.897200e+10</td>\n",
" <td>2.105600e+10</td>\n",
" <td>-3.279000e+09</td>\n",
" <td>1.777700e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-01</th>\n",
" <td>NaN</td>\n",
" <td>3.754000e+09</td>\n",
" <td>-3.410000e+08</td>\n",
" <td>8.780000e+08</td>\n",
" <td>6.282000e+09</td>\n",
" <td>-1.065000e+09</td>\n",
" <td>-249000000.0</td>\n",
" <td>6.560000e+08</td>\n",
" <td>3.874500e+10</td>\n",
" <td>587000000.0</td>\n",
" <td>1.876700e+10</td>\n",
" <td>-3.226000e+09</td>\n",
" <td>-4.509000e+09</td>\n",
" <td>-4.292900e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>4.590300e+10</td>\n",
" <td>-4.761000e+09</td>\n",
" <td>-2.223000e+09</td>\n",
" <td>0.0</td>\n",
" <td>-7.790000e+09</td>\n",
" <td>-8.621000e+09</td>\n",
" <td>1.127200e+10</td>\n",
" <td>-8.551000e+09</td>\n",
" <td>-2.150000e+08</td>\n",
" <td>5.240000e+09</td>\n",
" <td>1.092700e+10</td>\n",
" <td>5.687000e+09</td>\n",
" <td>1.876700e+10</td>\n",
" <td>-3.226000e+09</td>\n",
" <td>1.554100e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-03</th>\n",
" <td>NaN</td>\n",
" <td>3.746000e+09</td>\n",
" <td>-2.700000e+08</td>\n",
" <td>8.740000e+08</td>\n",
" <td>-1.763000e+09</td>\n",
" <td>-4.330000e+08</td>\n",
" <td>-449000000.0</td>\n",
" <td>-3.000000e+06</td>\n",
" <td>3.246300e+10</td>\n",
" <td>-945000000.0</td>\n",
" <td>1.956900e+10</td>\n",
" <td>-3.463000e+09</td>\n",
" <td>-9.540000e+08</td>\n",
" <td>-4.611800e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>4.280000e+10</td>\n",
" <td>-7.735000e+09</td>\n",
" <td>-6.800000e+07</td>\n",
" <td>0.0</td>\n",
" <td>-4.285000e+09</td>\n",
" <td>-8.173000e+09</td>\n",
" <td>2.685000e+09</td>\n",
" <td>-1.113600e+10</td>\n",
" <td>-1.489000e+09</td>\n",
" <td>-7.910000e+08</td>\n",
" <td>2.897000e+09</td>\n",
" <td>3.688000e+09</td>\n",
" <td>1.956900e+10</td>\n",
" <td>-3.463000e+09</td>\n",
" <td>1.610600e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" period depreciationAndAmortization ... link finalLink\n",
"date ... \n",
"TTM 0.0 7.107000e+09 ... 0.0 0.0\n",
"2019-12-29 NaN 7.009000e+09 ... NaN NaN\n",
"2018-12-30 NaN 6.929000e+09 ... NaN NaN\n",
"2017-12-31 NaN 5.642000e+09 ... NaN NaN\n",
"2017-01-01 NaN 3.754000e+09 ... NaN NaN\n",
"2016-01-03 NaN 3.746000e+09 ... NaN NaN\n",
"\n",
"[6 rows x 32 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 90
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 371
},
"id": "cK4682S5mvoy",
"outputId": "ee2aa5a1-0b4d-4b0e-a578-44c47be7ba53"
},
"source": [
"balance_statement = pd.DataFrame(get_jsonparsed_data(base_url+'balance-sheet-statement/' + ticker + '?apikey=' + apiKey))\n",
"balance_statement = balance_statement.set_index('date')\n",
"balance_statement = balance_statement.iloc[::-1].apply(pd.to_numeric, errors='coerce')\n",
"\n",
"q_balance_statement = pd.DataFrame(get_jsonparsed_data(base_url+'balance-sheet-statement/' + ticker + '?period=quarter' + '&apikey=' + apiKey))\n",
"q_balance_statement = q_balance_statement.set_index('date').iloc[:4]\n",
"q_balance_statement = q_balance_statement.apply(pd.to_numeric, errors='coerce')\n",
"balance_statement = balance_statement.append(q_balance_statement.iloc[0].rename('TTM'))\n",
"\n",
"balance_statement.iloc[::-1,4:]"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/html": [
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>period</th>\n",
" <th>cashAndCashEquivalents</th>\n",
" <th>shortTermInvestments</th>\n",
" <th>cashAndShortTermInvestments</th>\n",
" <th>netReceivables</th>\n",
" <th>inventory</th>\n",
" <th>otherCurrentAssets</th>\n",
" <th>totalCurrentAssets</th>\n",
" <th>propertyPlantEquipmentNet</th>\n",
" <th>goodwill</th>\n",
" <th>intangibleAssets</th>\n",
" <th>goodwillAndIntangibleAssets</th>\n",
" <th>longTermInvestments</th>\n",
" <th>taxAssets</th>\n",
" <th>otherNonCurrentAssets</th>\n",
" <th>totalNonCurrentAssets</th>\n",
" <th>otherAssets</th>\n",
" <th>totalAssets</th>\n",
" <th>accountPayables</th>\n",
" <th>shortTermDebt</th>\n",
" <th>taxPayables</th>\n",
" <th>deferredRevenue</th>\n",
" <th>otherCurrentLiabilities</th>\n",
" <th>totalCurrentLiabilities</th>\n",
" <th>longTermDebt</th>\n",
" <th>deferredRevenueNonCurrent</th>\n",
" <th>deferredTaxLiabilitiesNonCurrent</th>\n",
" <th>otherNonCurrentLiabilities</th>\n",
" <th>totalNonCurrentLiabilities</th>\n",
" <th>otherLiabilities</th>\n",
" <th>totalLiabilities</th>\n",
" <th>commonStock</th>\n",
" <th>retainedEarnings</th>\n",
" <th>accumulatedOtherComprehensiveIncomeLoss</th>\n",
" <th>othertotalStockholdersEquity</th>\n",
" <th>totalStockholdersEquity</th>\n",
" <th>totalLiabilitiesAndStockholdersEquity</th>\n",
" <th>totalInvestments</th>\n",
" <th>totalDebt</th>\n",
" <th>netDebt</th>\n",
" <th>link</th>\n",
" <th>finalLink</th>\n",
" </tr>\n",
" <tr>\n",
" <th>date</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>TTM</th>\n",
" <td>NaN</td>\n",
" <td>1.896500e+10</td>\n",
" <td>1.181600e+10</td>\n",
" <td>3.078100e+10</td>\n",
" <td>1.457900e+10</td>\n",
" <td>9.599000e+09</td>\n",
" <td>2.619000e+09</td>\n",
" <td>5.757800e+10</td>\n",
" <td>1.785500e+10</td>\n",
" <td>3.430700e+10</td>\n",
" <td>4.700600e+10</td>\n",
" <td>8.131300e+10</td>\n",
" <td>1.181600e+10</td>\n",
" <td>7.816000e+09</td>\n",
" <td>6.131000e+09</td>\n",
" <td>1.131150e+11</td>\n",
" <td>0.000000e+00</td>\n",
" <td>1.706930e+11</td>\n",
" <td>7.044000e+09</td>\n",
" <td>5.078000e+09</td>\n",
" <td>1.666000e+09</td>\n",
" <td>7.816000e+09</td>\n",
" <td>2.505900e+10</td>\n",
" <td>3.884700e+10</td>\n",
" <td>3.268000e+10</td>\n",
" <td>0.0</td>\n",
" <td>5.615000e+09</td>\n",
" <td>1.214900e+10</td>\n",
" <td>5.044400e+10</td>\n",
" <td>1.692900e+10</td>\n",
" <td>1.062200e+11</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.148310e+11</td>\n",
" <td>-1.493800e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.447300e+10</td>\n",
" <td>1.706930e+11</td>\n",
" <td>1.181600e+10</td>\n",
" <td>3.775800e+10</td>\n",
" <td>1.879300e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2019-12-29</th>\n",
" <td>NaN</td>\n",
" <td>5.501000e+09</td>\n",
" <td>1.378600e+10</td>\n",
" <td>1.928700e+10</td>\n",
" <td>1.448100e+10</td>\n",
" <td>9.020000e+09</td>\n",
" <td>2.486000e+09</td>\n",
" <td>4.527400e+10</td>\n",
" <td>1.861500e+10</td>\n",
" <td>3.363900e+10</td>\n",
" <td>4.764300e+10</td>\n",
" <td>8.128200e+10</td>\n",
" <td>1.148000e+09</td>\n",
" <td>5.958000e+09</td>\n",
" <td>1.140900e+10</td>\n",
" <td>1.124540e+11</td>\n",
" <td>1.150300e+10</td>\n",
" <td>1.577280e+11</td>\n",
" <td>8.544000e+09</td>\n",
" <td>1.202000e+09</td>\n",
" <td>2.266000e+09</td>\n",
" <td>7.819000e+09</td>\n",
" <td>2.266000e+09</td>\n",
" <td>3.596400e+10</td>\n",
" <td>2.649400e+10</td>\n",
" <td>0.0</td>\n",
" <td>5.958000e+09</td>\n",
" <td>2.984100e+10</td>\n",
" <td>6.229300e+10</td>\n",
" <td>2.984100e+10</td>\n",
" <td>9.825700e+10</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.106590e+11</td>\n",
" <td>-2.567400e+10</td>\n",
" <td>-1.589100e+10</td>\n",
" <td>5.947100e+10</td>\n",
" <td>1.577280e+11</td>\n",
" <td>1.493400e+10</td>\n",
" <td>2.769600e+10</td>\n",
" <td>2.219500e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2018-12-30</th>\n",
" <td>NaN</td>\n",
" <td>6.016000e+09</td>\n",
" <td>1.367100e+10</td>\n",
" <td>1.968700e+10</td>\n",
" <td>1.409800e+10</td>\n",
" <td>8.599000e+09</td>\n",
" <td>3.649000e+09</td>\n",
" <td>4.603300e+10</td>\n",
" <td>1.703500e+10</td>\n",
" <td>3.045300e+10</td>\n",
" <td>4.761100e+10</td>\n",
" <td>7.806400e+10</td>\n",
" <td>5.110000e+08</td>\n",
" <td>7.506000e+09</td>\n",
" <td>1.131100e+10</td>\n",
" <td>1.069210e+11</td>\n",
" <td>1.226100e+10</td>\n",
" <td>1.529540e+11</td>\n",
" <td>7.537000e+09</td>\n",
" <td>2.796000e+09</td>\n",
" <td>8.180000e+08</td>\n",
" <td>7.640000e+09</td>\n",
" <td>1.317000e+09</td>\n",
" <td>3.123000e+10</td>\n",
" <td>2.768400e+10</td>\n",
" <td>0.0</td>\n",
" <td>7.506000e+09</td>\n",
" <td>2.678200e+10</td>\n",
" <td>6.197200e+10</td>\n",
" <td>2.678200e+10</td>\n",
" <td>9.320200e+10</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.062160e+11</td>\n",
" <td>-2.481600e+10</td>\n",
" <td>-1.522200e+10</td>\n",
" <td>5.975200e+10</td>\n",
" <td>1.529540e+11</td>\n",
" <td>1.418200e+10</td>\n",
" <td>2.998100e+10</td>\n",
" <td>2.396500e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-12-31</th>\n",
" <td>NaN</td>\n",
" <td>1.782400e+10</td>\n",
" <td>4.720000e+08</td>\n",
" <td>1.829600e+10</td>\n",
" <td>1.349000e+10</td>\n",
" <td>8.765000e+09</td>\n",
" <td>0.000000e+00</td>\n",
" <td>4.308800e+10</td>\n",
" <td>1.700500e+10</td>\n",
" <td>3.190600e+10</td>\n",
" <td>5.322800e+10</td>\n",
" <td>8.513400e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>7.105000e+09</td>\n",
" <td>4.971000e+09</td>\n",
" <td>1.142150e+11</td>\n",
" <td>0.000000e+00</td>\n",
" <td>1.573030e+11</td>\n",
" <td>7.310000e+09</td>\n",
" <td>4.720000e+08</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>0.000000e+00</td>\n",
" <td>3.053700e+10</td>\n",
" <td>3.067500e+10</td>\n",
" <td>0.0</td>\n",
" <td>8.368000e+09</td>\n",
" <td>9.017000e+09</td>\n",
" <td>6.660600e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>9.714300e+10</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.017930e+11</td>\n",
" <td>-2.446100e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>6.016000e+10</td>\n",
" <td>9.714300e+10</td>\n",
" <td>0.000000e+00</td>\n",
" <td>3.458100e+10</td>\n",
" <td>1.675700e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2017-01-01</th>\n",
" <td>NaN</td>\n",
" <td>9.166000e+09</td>\n",
" <td>3.274100e+10</td>\n",
" <td>4.190700e+10</td>\n",
" <td>1.169900e+10</td>\n",
" <td>8.144000e+09</td>\n",
" <td>3.282000e+09</td>\n",
" <td>6.503200e+10</td>\n",
" <td>1.591200e+10</td>\n",
" <td>2.280500e+10</td>\n",
" <td>2.687600e+10</td>\n",
" <td>4.968100e+10</td>\n",
" <td>2.293500e+10</td>\n",
" <td>2.910000e+09</td>\n",
" <td>1.058300e+10</td>\n",
" <td>7.617600e+10</td>\n",
" <td>1.058300e+10</td>\n",
" <td>1.412080e+11</td>\n",
" <td>6.918000e+09</td>\n",
" <td>4.684000e+09</td>\n",
" <td>9.710000e+08</td>\n",
" <td>6.148000e+09</td>\n",
" <td>9.710000e+08</td>\n",
" <td>2.628700e+10</td>\n",
" <td>2.244200e+10</td>\n",
" <td>0.0</td>\n",
" <td>2.910000e+09</td>\n",
" <td>1.915100e+10</td>\n",
" <td>4.450300e+10</td>\n",
" <td>1.915100e+10</td>\n",
" <td>7.079000e+10</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.105510e+11</td>\n",
" <td>-1.490100e+10</td>\n",
" <td>-1.531200e+10</td>\n",
" <td>7.041800e+10</td>\n",
" <td>1.412080e+11</td>\n",
" <td>3.274100e+10</td>\n",
" <td>2.712600e+10</td>\n",
" <td>1.796000e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2016-01-03</th>\n",
" <td>NaN</td>\n",
" <td>5.687000e+09</td>\n",
" <td>3.268900e+10</td>\n",
" <td>3.837600e+10</td>\n",
" <td>1.073400e+10</td>\n",
" <td>8.053000e+09</td>\n",
" <td>3.047000e+09</td>\n",
" <td>6.021000e+10</td>\n",
" <td>1.590500e+10</td>\n",
" <td>2.162900e+10</td>\n",
" <td>2.576400e+10</td>\n",
" <td>4.739300e+10</td>\n",
" <td>2.464400e+10</td>\n",
" <td>2.562000e+09</td>\n",
" <td>9.903000e+09</td>\n",
" <td>7.320100e+10</td>\n",
" <td>9.903000e+09</td>\n",
" <td>1.334110e+11</td>\n",
" <td>6.668000e+09</td>\n",
" <td>7.004000e+09</td>\n",
" <td>7.500000e+08</td>\n",
" <td>5.490000e+09</td>\n",
" <td>7.500000e+08</td>\n",
" <td>2.774700e+10</td>\n",
" <td>1.285700e+10</td>\n",
" <td>0.0</td>\n",
" <td>2.562000e+09</td>\n",
" <td>1.909500e+10</td>\n",
" <td>3.451400e+10</td>\n",
" <td>1.909500e+10</td>\n",
" <td>6.226100e+10</td>\n",
" <td>3.120000e+09</td>\n",
" <td>1.038790e+11</td>\n",
" <td>-1.316500e+10</td>\n",
" <td>-1.376900e+10</td>\n",
" <td>7.115000e+10</td>\n",
" <td>1.334110e+11</td>\n",
" <td>3.268900e+10</td>\n",
" <td>1.986100e+10</td>\n",
" <td>1.417400e+10</td>\n",
" <td>NaN</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" period cashAndCashEquivalents ... link finalLink\n",
"date ... \n",
"TTM NaN 1.896500e+10 ... NaN NaN\n",
"2019-12-29 NaN 5.501000e+09 ... NaN NaN\n",
"2018-12-30 NaN 6.016000e+09 ... NaN NaN\n",
"2017-12-31 NaN 1.782400e+10 ... NaN NaN\n",
"2017-01-01 NaN 9.166000e+09 ... NaN NaN\n",
"2016-01-03 NaN 5.687000e+09 ... NaN NaN\n",
"\n",
"[6 rows x 42 columns]"
]
},
"metadata": {
"tags": []
},
"execution_count": 91
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "QiMKxifJm0ny"
},
"source": [
"all_statements = pd.merge(income_statement,cash_flow_statement, how='outer', left_index=True, right_index=True)\n",
"all_statements = pd.merge(all_statements,balance_statement, how='outer', left_index=True, right_index=True)\n",
"all_statements['Receivables-sales-ratio'] = all_statements['netReceivables'] / all_statements['revenue']"
],
"execution_count": null,
"outputs": []
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 344
},
"id": "9qtKHUy1m305",
"outputId": "30909efc-24a0-46d7-ad4f-783eaf9ce663"
},
"source": [
"all_statements[['revenue', 'operatingCashFlow', 'netIncome']].plot(kind='bar', title=ticker + ' Revenue, Cash Flow, Income, Receivables (All Must Increase)')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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Mfzg/XhgzN+YPXs2e+65J6eeeiq9evVi6NChLF++HIDXX3+dQw45hH79+nHkkUfy2WefAXDooYdy4YUX0r9/f26++WaeeOIJBgwYwL777suQIUOYP38+s2fPZsyYMdx000307duXqVOnMnLkSG688caqeVx++eUccMAB7LHHHkydOhWA5cuXc/LJJ7PXXntxwgknMGDAAF577TU++ugjXn75ZS699FLKysLPepcuXRg4cCAAxx9/PP369ePkQfvyn/vuAqCiooKrzz+L4Qfvx08P6ce/7ril6nN46KGH1lt2Lt58800OPPBA9t57b0444QQWLVrEF198Qb9+/QB466236NixI5988gkQHhpR+XmmiQqviAjw7ow3eHLcfdw07glueuBxHv3n31m0aBHl5eWccsopvPjii7Rr146xY8eyevVqzj//fO666y4mTZrEiSeeyBVXXFE1r9WrVzNx4kTOOuss+vTpw9NPP83kyZM56qijGDVqFJ07d2b48OGcccYZTJkyhb333nu9eNasWcOECRMYOXIk11xzDQC33347HTt2ZPr06VxyySW8/vrrAMyaNYtddtmFJk2aVJvbX//6VyZNmsTfHnqKf995G4u/Wsj7s2bw5efzGPPEc9zx+CQO/vFxtS4bYPr06fTt25e+ffty3XXXrbec0047jREjRjB16lR23nlnrr76ajbbbDNWrlzJkiVLmDZtGj169GDatGnMmTOHzTbbjNatc7tneClRV7OICPDWy9Ppe9DBtGodHkaw38BDmTZtGltvvTW9e/cG4JhjjuHmm2+mvLycWbNmcfjhhwOwdu1aOnXqVDWvyqcWAcydO5fhw4fz+eefs2rVqqpjpBtSed/nzEcJTps2jdNOOw2AnXfeme7du+c0r1tuuYVHH32UbyqcL+bNZe7HH7LN9t9l3pzZ3PDbi+jd/4f03Ld/rcuG2ruaFy9ezJIlS+jbty8QWtnDhg0DoFevXkyfPp2pU6dy7rnn8swzz+Du9OnTJ6f4S40Kr4hIHZgZ7k63bt0YP358tdNkPkno/PPP55e//CWHHHIIkydP5uqrr85pOZVPa2rSpAlr1qypddqddtqJGTNmUFFRsV6rd/LkyUyaNInx48fz7vKmnHP84axauZJ2HTpy26PP8uLkZ3nk3rE8+8TDXHD1qDovOxd7770306ZN45NPPuHQQw9l1KhRmBkHHXRQveddjNTVLCIC7NqzN8+Pf4IV3yznm+XLmPzU4/Tp04dPP/2UF198EYAHHniAXr160bVrV7788suq4atXr2bWrOpvHb9kyRK23HJLAO69996q4W3btuXrr7+uU4y9e/fmoYceAuCdd97h7bffBmC77bajR48ejBw5ksoH38yePZv//ve/LFmyhA4dOtC6dWvmfFDO26+/AsDihQtYu9bpN+gwTjn3IspnvlmnWLJ16NCBDh06VB0Tvu+++9hnn30A6NOnD/fffz877LADZWVlbLTRRowfP14tXhGRNPve93dl4JHHcvqRgwA49JgT6NixI127duW2227jzDPPZMcdd2TYsGE0b96cO++8kwsuuIAlS5ZQUVHB6aefzk477bTefC+88EKGDRtGx44d2W+//Zg9ezYABx98MEOHDuXxxx/n2muvzSnGU045hdNPP5299tqLrl270q1bN9q3bw/ADTfcwKWXXkqPHj1o1aoVG2+8MVdccQXdu3dnzJgx9OrVi8223Z6dd9sDgC8+n8e1F/yKtb4WgFPPu7Ten+HNN9/Mueeey/Lly+nSpQs33XQTAJ07d8bdq45l9+7dm7lz59KxY8d6L7MYFc1jATdEjwVMTjHnXt/reNOae1oeC7jxsnkce+yxTJs2rWpYko8FrKioYPXq1bRs2ZKPPvqIIUOG8PLLL9O8eW4PNajvQxL0WMCGoRaviEiRWL58OYcddhirV6/G3fnjH/+Yc9GVxkOFV0SkBp07d16ntZu0du3aMXHixKTDkHrSyVUiIiIxUotXcj7WB7pnsYhIfRVNi9fMdjSz1zP+LTGzc5KOS0REpC6KpsXr7u8CuwGYWRNgLvBgokGJiIjUUdG0eLMMAD5w99lJByIi6fToo4/yzjvvVL0+/fTTefjhhxOMSIpF0bR4sxwL3LvBqepIz2YVaRyWTRjUoPNrc8CTDTo/gMcee4xBgwbRrVu3Bp+3lLaiK7xm1hz4EXBRTdOUl5fnOffcnpJR0/zzX27Scn86SFpzry2/tObekHm3bNmy6v7AhbBixYqMV9V39H326RwuOOU4dtljL2a8+hKbddqcf/19LJ9//jkXXXQRCxYsoFWrVlx33XUsWrSIJ554gilTpnDttddy++23U1FRwapVq1ixYgU9e/bkmGOOYfz48axevZpbb72Vrl27smzZMi6++GLeeOMNzIxf//rXDB48mAcffJBRo0bh7hx44IFcdtllAGy//fYMGzaMZ555hk6dOnHRRRdxxRVXMHfuXK644goGDhxIRUUFV155JVOnTmXVqlUMHz6coUOH1vBJ5NbJue7nlfu4hrJkyRLmz59f9bpYb1JTk6IrvMDBwKvu/nlNE+S9kqbk1uKtbv7FfAejXPOG9OZeU35pzb0Qd67KvCPSsgabc7DO3ZaW1nz3pk8//pDLrr+F837/J0ac9TOeeuop7rnnHq6//np22GEHXn75ZS688EIee+wxDj74YAYNGsSQIUOA8BbTbEoAABngSURBVECB5s2b07JlS8yMTp06MXnyZG677TZGjx7NjTfeyMiRI9loo4144YUXAFi0aBFfffUVV111FRMnTqRjx44cccQRPP300wwePJjly5dzwAEHMHLkSE444QT+8Ic/8Mgjj/DOO+9w+umnM2TIEMaOHcvGG2/MpEmTWLlyJQMHDuSggw6iS5cu6ydYS+41fl4Z4rpzVfv27dlmm20KvpykFGPhPY4CdDOLiGyx9bZ8d+ddANjx+7syZ84cXnzxxarH2wGsXLkyp3llPlrvP//5DwATJ07kjjvuqJqmY8eOPP/88+yzzz5suummABx99NFMnTqVwYMH07x5cw488EAgPAawRYsWNGvWjO7du1c9rm/ChAnMnDmz6vjykiVL+PDDD6svvNIoFFXhNbM2wA+BXyQdi4iUnmbNv+3uLmvShK+++oIOHTowZcqUquG5drU2xKP1mjVrhlm4NXFZWVnVPMvKyqioqADA3bn22msZMGBAXsuQ+BXVWc3uvszdN3H3xUnHIiKlr127dnTu3LnqUXzuzsyZM4H8Huu3//77c+utt1a9XrRoEXvssQfPP/88CxYsoKKignHjxlU9Ti8XAwYM4Pbbb2f16tUAvP/++yxb1tCd9dKQiqrwiojEbfTo0dx9993ss88+9O7dmyefDGdIH3XUUdx4443su+++fPTRRznN67zzzmPRokX06dOHffbZh+eee47NN9+cESNGcNhhh9G3b1922203Dj300JzjGzp0KN26daNfv3706dOHc845p0EeXi+Fo8cCZmhMj0mLU31vGZmG3PVYwHWl5bGA1T0eL8nHAtaXHgvYOKjFKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwikriysjJWrcr9pCcpXatWraKsrLRLU1HdQENESlPbtm1ZunQp33zzTcGX9dKc5TlPu32z9e9nvWTJEtq3b9+QIcUm19yryxviyb2srIy2bdsWdBlJU+EVkcSZGe3atYtlWee/sTTnaX+++/qXtMyfP79o7yOca+7V5Q3FnXtjUtrteRERkUZGhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjFR4RUREYqTCKyIiEqOiKrxm1tHMHjCzd8xslpn1STomERGRuii2G2iMAp509x+bWXOg+turiIiINFJFU3jNrAOwH3AygLuvAnRzVxERKSrF1NW8HfAFMMbMXjOz28ysTdJBiYiI1EXRtHgJse4OnOXu081sFHAhcFn2hOXl5XkuIree65rmn/9yk5Z7j31ac68tv7TmXup5Q3pzb2zbe9euXWNfZiEVU+H9FPjU3adHrx8gFN715L2SpszNabLq5l9eXl68G0eOeUN6c68pv7Tmnoa8Ib25l+T23ogUTVezu38GfGJmO0aDBgBvJxiSiIhInRVTixfgLOCe6IzmD4HhCccjIiJSJ0VVeN39daBn0nGIiIjkq2i6mkVEREqBCq+IiEiMVHhFRERipMIrIiISIxVeERGRGKnwioiIxEiFV0REJEYqvCIiIjFS4RUREYmRCq+IiEiMVHhFRERipMIrIiISIxVeERGRGKnwioiIxEiFV0REJEYqvCIiIjFqmnQAdWFmHwNfAxXAGnfvmWxEIiIidVNUhTeyv7t/mXQQIiIi+VBXs4iISIyKrfA68JSZvWJmP086GBERkboqtq7mvu4+18y+A4w3s3fc/bnsicrLy/Ocfeucpqpp/vkvN2m55Q3pzb22/NKae6nnDenNvbFt7127do19mYVUVIXX3edG/883sweBXsB6hTfvlTRlbk6TVTf/8vLy4t04cswb0pt7TfmlNfc05A3pzb0kt/dGpGi6ms2sjZm1q/wbOAiYkWxUIiIidVNMLd5OwINmBiHuf7j7k8mGJCIiUjdFU3jd/UPgB0nHISIiUh9F09UsIiJSClR4RUREYqTCKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjFR4RUREYqTCKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjIqu8JpZEzN7zcweTToWERGRuiq6wgv8CpiVdBAiIiL5KKrCa2ZbA4cCtyUdi4iISD6aJh1AHf0ZOB9oV9tE5eXlec6+dU5T1TT//JebtNzyhvTmXlt+ac291POG9Obe2Lb3rl27xr7MQiqawmtmg4H57v6KmfWvbdq8V9KUuTlNVt38y8vLi3fjyDFvSG/uNeWX1tzTkDekN/eS3N4bkWLqat4H+JGZfQzcBxxgZn9PNiQREZG6KZrC6+4XufvW7t4FOBaY4O4nJhyWiIhInRRN4RURESkFRXOMN5O7TwQmJhyGiIhInanFKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjFR4RUREYqTCKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjFR4RUREYlQ0hdfMWprZi2b2hpnNNLPfJh2TiIhIXTVNOoA6WAkc4O5LzawZMMXMnnD3F5IOTEREJFdFU3jd3YGl0ctm0T9PLiIREZG6K5rCC2BmTYBXgO8Cf3X36dVNV15enucSWuc0VU3zz3+5Scstb0hv7rXll9bcSz1vSG/ujW1779q1a+zLLKSiKrzuXgHsZmYdgQfN7PvuPiN7urxX0pS5OU1W3fzLy8uLd+PIMW9Ib+415ZfW3NOQN6Q395Lc3huRojm5KpO7LwKeBQYlHYuIiEhdFE3hNbPNopYuZtYK+CHwTrJRiYiI1E0xdTVvAdwZHectA+5390cTjklERKROiqbwuvubQI+k4xAREamPoulqFhERKQUqvCIiIjFS4RUREYmRCq+IiEiMVHhFRERipMIrIiISIxVeERGRGKnwioiIxEiFV0REJEYqvCIiIjFS4RUREYlR0dyrWUQkbm2H9V9vWHU3jF9658RChyIlRC1eERGRGKnwioiIxEhdzSJSq1y7W0FdriK5UItXREQkRkXT4jWzbYC7gE6AA6PdfVSyUYmIlJ7qejlAJ5Y1lKIpvMAa4Nfu/qqZtQNeMbPx7v520oFJ6dMPkYg0lKLpanb3ee7+avT318AsYKtkoxIREamboim8mcysC6GxMT3ZSEREROqmmLqaATCztsA44Bx3X1LdNOXl5XnOvXVOU9U0//yXm7Tc8oZ0556r4vks0pp7WvOGYs29a9euBV9GnIqq8JpZM0LRvcfd/13TdHmvpClzc5qsx5Wn5jzLojjel2PeUP1nW15eXrxfjDrknqui+SzSmnta84Z0596IFE1Xs5kZcDswy93/lHQ8IiIi+SimFu8+wEnAW2b2ejTsYnd/PMGYUkf3rhURqZ+iKbzuPgWwpOMQERGpj6LpahYRESkFKrwiIiIxUuEVERGJUdEc45XismzCoJynbXPAkwWMREQKKdfvur7n31KLV0REJEYqvCIiIjFSV3OBqRtGREQyqfCKSINJ646mzmmQulBXs4iISIxUeEVERGKkwisiIhIjFV4REZEYqfCKiIjESIVXREQkRiq8IiIiMVLhFRERiVHRFF4zu8PM5pvZjKRjERERyVfRFF5gLJD77WFEREQaoaIpvO7+HLAw6ThERETqo2gKr4iISCkoyYcklJeX5/nO1g0aR13kH3NDSC5vKL3ck82nLrS9JyGtudcn765duzZgJMkrycKb90qaMrdhA6mDRDesBPOG0su9aH4ktL0nIq25F833IgbqahYREYlR0RReM7sXmAbsaGafmtkpScckIiJSV0XT1ezuxyUdg4iISH0VTYtXRESkFKjwioiIxEiFV0REJEYqvCIiIjFS4RUREYmRCq+IiEiMVHhFRERipMIrIiISIxVeERGRGKnwioiIxEiFV0REJEYqvCIiIjFS4RUREYmRCq+IiEiMVHhFRERipMIrIiISIxVeERGRGDVNOoC6MLNBwCigCXCbu1+dcEgi61k2YVBO07U54MkCRyIijVHRtHjNrAnwV+BgYGfgODPbOdmoRERE6sbcPekYcmJmfYAR7j4wen0RgLuPBFi8eHFxJCIiInnr0KGDJR1DfRVNixfYCvgk4/Wn0TAREZGiUUyFV0REpOgV08lVc4FtMl5vHQ0DSqP7QURESl8xtXhfArqa2XZm1hw4Fngk4ZhERETqpGhavO6+xszOBP5LuJzoDnefmXBYIiIidVI0ZzWLiIiUgqJp8Yo0VmbW1t2XJh1HHMxsYwB3X5h0LHEys56Ec0wqgPfc/Z2EQyooM7uhtvHufnZcsZQitXjzYGbdgOuBtcDZwGXA4cB7wDB3n5VgeIkxs7fcfZek44ibmc1x922TjqNQzGxb4FpgALAIMKA9MAG40N0/Ti66wjKzfsAfCXnvATwPbASsBk5y909qeXvRMrNVwAzgfuB/hHVexd3vTCKuUqEWb35GA38A2hJ+fC4AhgODgb8QfqBKkpkdWdMoYPM4Y4mTmZ1b0yjCdlDK/gn8GTjB3Sug6k5yRwP3Ab0TjK3Q/gwc5O5fmNl2wJ/cfR8z+yFwO3BQsuEVzBaE9fsTYA1hG3jA3RclGlWJUIs3D2b2mrv3iP5+392/mzHuVXffPbnoCsvMVgP3ANVtOD9293YxhxQLM1tB2NlaU83o/3P3jjGHFBszK3f3rnUdVwrM7E133zX6uwnwUuX328xmunv3RAOMgZltTbiK5FzgAne/O+GQip5avPlpkvH3n7LGNY8zkAS8CVzn7jOyR5jZgQnEE5dXgYfc/ZXsEWb2swTiidMrZnYTcCff3j1uG2AY8FpiUcXjZTO7ndCz9SNgIoCZtWbd34GSZGa7A8cBPwSeANbb/qXu1OLNg5n9Argn+4QaM/sucKa7n5NMZIVnZvsCs919TjXjerr7ywmEVXBmtiOw0N2/qGZcJ3f/PIGwYhFdN38KMIRvb9M6l3Ad/e3uvjKp2ArNzJoBpxIezPIG4TLGCjNrBXzH3WcnGmCBmNnvgEOBWYTDCU+6e3W9PZIHFV4REVmHma0FPgKWR4MqC4UBXtn9LvlRV3MezKwpoQVwBLBlNHgu8DChBbA6qdgKLa25m9nmwOWEM9l/A5wFHEVoEfzK3eclGF5BRd2qZxJ+fG8knHBzFPAO8LtSvpTKzNoDFxFuUfuEu/8jY9xN7n5GYsEV1nZJB1DK1OLNg5ndS7i84E7CU5IgfDGHARu7+0+Siq3Q0pq7mT0JPAa0AY4nnGD2D8JlZAe6+5AEwysoM7ufcGy3FbAjYWfjn4Rjnpu7+0kJhldQZjYOKAdeAH5KuIzoeHdfWconUprZU+5eqmdsJ06FNw9m9p67f6+u40pBWnPPOpN9net2zex1d98tuegKqzI/MzNgHrCFu3v0+o1S7nbMXrdmdglwCGGnY3wJF96q7V0anrqa87PQzI4Gxrn7WgAzKyNc9/ZVopEVXlpzz3ygyF21jCtZUbF93KO99eh1qe+5tzCzsspt3d2vMrO5wHOU9vXbHWq5Zh93/3ecwZQaFd78HAtcA9xkZpXFZiPCJQfHJhZVPNKa+8OVt4Z090srB0Znsr+XYFxxeDkj959WDjSzHYCvE4wrDv8BDgCerhzg7mPN7DPC8e5S1YFwQ6DqHrfqgApvPairuZ7MbBMAd1+QdCxxS3PuEpiZuX5ESk5abg6SlFR0kRWSuy9w9wVmNjrpWOKW5twBzOzRpGNISuU6T2PRTcl6L9lrsxsDFd6G0zPpABKU1ty32vAkJSut6xzSsd5T97CTOOkYb8OZn3QACUpr7qV+u8TapHWdQzrW++e1PBgEd8++Va7UgY7xiojIOsxsHnAz1Z9chbv/Nt6ISosKbwMzs9Hu/vOk40hCKeee4jsYVT6V52eE3J909+czxl3q7lcmFlyBpXW9l/LNQRoDHePNg5ltXMO/TQgX15esFOc+hrD3Pw441szGmVmLaFwpP48W4G9AP2ABcIOZZXYz1nitZ4lI63qvtqUrDUMt3jyYWQUwm3U3To9eb+XuJftowLTmntY7GMF6z6RtCtwEbEp4XNwLpXyHo7SudzPb2N0XJh1HqdLJVfn5EBhQw6PxPqlm+lKS1tzTegcjyHjGdPRouJ+b2W8IN00p9dxTud5VdAtLXc35+TPhbk3VuTbOQBKQ1twr72BUxd3HAr8GViURUIxeNrNBmQPc/XeEbtguiUQUnzSvdykQdTWLiIjESF3NeTKzbsAQvr2Yfi7wiLvPSi6qeKQ59+qY2XB3H5N0HEkwsx+6+/ik40hCmte71I+6mvNgZhcA9xFOKHox+mfAvWZ2YZKxFVqac69Fmq9pvD3pABKU5vUu9aCu5jyY2XtAd3dfnTW8OTDT3bsmE1nhpTV3M3uzplHA99y9RQ3ji56ZPVLTKOAAd28TZzxxSvN6l8JRV3N+1gJbEi6rybRFNK6UpTX3TsBA1n/msAFT4w8nVvsCJwJLs4Yb0Cv+cGKV5vUuBaLCm59zgGfMrByovIRmW+C7wJmJRRWPtOb+KNDW3V/PHmFmE+MPJ1YvAMvdfVL2CDN7N4F44pTm9S4Foq7mPJlZGWFvP/MEo5fcvSK5qOKR5txFROpLJ1flyd3XuvsL7j7O3ccBu6al8KQ590xmVpL3pc6FmQ1OOoakpHm9S8NQi7eBpPmm4mnNPa15g3JPa+7SMNTibThpvql4WnNPa96g3EXyphZvAzGzrd3906TjSEJac09r3gBm1svdX0w6jiSkeb1Lw1DhzYOZ7QXMcvclZtYKuBDYHXgb+L27L040wAIys7OBB929lB+IsJ605g1V12gfC/zP3Z82s+OBvYFZwOjsa7pLjZltT3j84TZABfAe8A93X5JoYFK0VHjzYGYzgR+4+xozGw0sBx4ABkTDS/YZpWa2GFgGfADcC/zL3b9INqrCS2veAGZ2D+HSw9bAIsJTef5N2N7N3YclGF5BRTtcgwlPIzoEeI3wGRwBnOHuE5OLToqVCm8ezGyWu+8U/b3OiRbZz+8sNWb2GrAHcCDwE8JzSV8hFKN/u/vXCYZXMGnNG759Hm/0LN65wJbuXmFmBrxR+azeUmRmbwG7Rfm2Bh539/5mti3wcCk/i1gKRydX5WeGmQ2P/n7DzHoCmNn3gJLudgM8upzoKXc/hXAXq5uAQYRn9ZaqtOYNUBZ1N7cjtHo7RMNbAM0Siyo+lTcaakH0DN7oedRpyF0KQHeuys/PgFFmdinwJTAtegj8J9G4UrbOGZ3R8b1HgEeiFkGpSmveEB6E8A7QBLgE+JeZfQj0Jjwwo5TdBrxkZtMJt868BsDMNgP0sHjJi7qa68HM2gPbEXZgPnX3zxMOqeDM7Hvu/l7SccQtrXlXMrMtAdz9f2bWkdDlPicNZzabWXdgJ2CGu7+TdDxS/FR4G5iZtXX37JvJp0Jac09r3qDc05q71I+O8Ta8t5MOIEFpzT2teYNyF6kzHePNg5mdW9MoopMvSlVac09r3qDcaxpFiecuhaMWb35+D2xEOMsz819bSv8zTWvuac0blHtac5cCUYs3P68CD7n7K9kjzKzUz2pOa+5pzRuUe1pzlwLRyVV5MLMdgYXV3bnIzDqV8tnNac09rXmDcieluUvhqPCKiIjESMco8mBmHczsajN7x8wWmtkCM5sVDeuYdHyFlNbc05o3KPe05i6Fo8Kbn/uBr4D+7r6xu28C7B8Nuz/RyAovrbmnNW9Q7mnNXQpEXc15MLN33X3Huo4rBWnNPa15g3JPa+5SOGrx5me2mZ1vZp0qB5hZJzO7gHC/5lKW1tzTmjco97TmLgWiwpufnwCbAJPM7CszWwhMBDYGjkkysBikNfe05g3KPa25S4GoqzlPZtYN2Bp4IfN+rWY2yN2fTC6ywktr7mnNG5Q7Kc1dCkMt3jyY2dnAw8CZhGfzDskY/ftkoopHWnNPa96g3Elp7lI4unNVfk4F9nD3pWbWBXjAzLq4+yiynttagtKae1rzBuWe1tylQFR481NW2eXk7h+bWX/CF7Izpf9lTGvuac0blHtac5cCUVdzfj43s90qX0RfzMHApsAuiUUVj7Tmnta8QbmnNXcpEJ1clQcz2xpY4+6fVTNuH3d/PoGwYpHW3NOaNyh3Upq7FI4Kr4iISIzU1SwiIhIjFV4REZEYqfCKNFJmNtbMrkw6DhFpWCq8IkXOzCaa2c+SjkNEcqPCKyIiEiMVXpFGwsx6mNmrZva1mf0TaBkN38jMHjWzL6Ib9T8aXeaCmV0F7Av8xcyWmtlfouHdzGy8hYe3v2tmuqG/SCOhwivSCJhZc+Ah4G7Ck2/+BRwVjS4DxgCdgW2Bb4C/ALj7JcBk4Ex3b+vuZ5pZG2A88A/gO8CxwE1mtnN8GYlITVR4RRqH3kAz4M/uvtrdHwBeAnD3Be4+zt2Xu/vXwFVAv1rmNRj42N3HuPsad38NGAccXeAcRCQHulezSOOwJTDX172jzWwAM2sNXA8MAjaKxrUzsybuXlHNvDoDe5nZooxhTQmtaRFJmAqvSOMwD9jKzCyj+G4LfAD8GtgR2MvdP4vuHfwa396kP/v2c58Ak9z9hzHELSJ1pK5mkcZhGrAGONvMmpnZkUCvaFw7wnHdRWa2MXB51ns/B7bPeP0o8D0zOymaVzMz29PMdipwDiKSAxVekUbA3VcBRwInAwuBnwD/jkb/GWgFfAm8ADyZ9fZRwI+jM55viI4DH0Q4qep/wGfANUCLAqchIjnQQxJERERipBaviIhIjFR4RUREYqTCKyIiEiMVXhERkRip8IqIiMRIhVdERCRGKrwiIiIxUuEVERGJkQqviIhIjP4/s9LXvA/GLlUAAAAASUVORK5CYII=\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 344
},
"id": "SCMCRurqnCtt",
"outputId": "8a0cb60d-6d76-4f75-a1c8-2eb6e2695c42"
},
"source": [
"all_statements[['operatingCashFlow', 'netIncome']].plot(kind='bar', title=ticker + ' Above Without Revenue (Clearer Scale) (All Must Increase)')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAc0AAAFHCAYAAADDbhejAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nO3dd7wU5dn/8c/3KGBBwJIYK2iCjZhojBQbKsaCRozG2GLXqI9G/alRkxg1MfYnJhqDJRbUWB8rsQYLKoIFS2xosKFgbyASpV2/P+45h2XZc86csruHs9/368WLszOzs9e1M7PXzD33zCgiMDMzs+bVVTsAMzOzhYWLppmZWU4ummZmZjm5aJqZmeXkomlmZpaTi6aZmVlOHb5oStpP0uxqx9HeJI2QdH+O6ULSzysRk7WepJGSjmvF+0ZLuqwcMXUGrdn+Je0h6SlJyjn9MZLubEVs823Dkk6V9FpL52PVI+kSSX9qyXuaLZqFK0a2UoSkm0pMN1vSfgWv35J0Up4gJF0kaY6kw1sQe9VJ2jL7PtYuGn5HE8MfzF4eBexaMO4ySaPLHnQTipdhE9ONyPKLbLlNlnS1pJUqEGaHI2kI0B+4sGj4qtm6/aakryVNkXSfpJ3y/qB3ZJI2kfQvSR9J+krSJEk3S+pd5dBuAJYA9mpuQknLACcDvysxbjFJn0r6MpuuzbKdpJB0XolxR2Xj2rXwSrpf0ogc03XKA5Rm/AE4VNLqed/QmiPNr4CfShrYivcuQNKSpJX7DODg9phnBY0lfR9b1g+QtAgwGHi7keH3A0TE1Ij4rKLRtq9HgRWAVYE9gfWB/6tqRNVzDHB1RHxVP0DSesBzwIBs/LrAVsBI4M9Az0oGKKlre74v2yEcBUwk5bU2sB/wFtCjVUG2k0h3bLkcODrH5AcC/4mIZ0uM+xnwJvAwsG/7RcjbwN4lvttfAJPa8XM6HCVdqh1HvYiYAjwA/E9L3tTkP2AEcH/296nAa6QfxzFF080G9it4/RZwUo75HwQ8DXQDPgMGFI3fL5v3VsBLpCL1BLBe0XRDs/l8DXwIDAeWzMb9CJgDrFz0nt2AGUCP7PXyWb4fAV8AjwGbNRP//cCtBa8HAJ8CvyoxPID+jXyvUfRvv2xcZAv0miymycCvi2JYCrgki/trYDywdcH4Ptl8Nil632vAqQXLa74Y8qwTBcN+mb2vR8GwH2Xf4X+BKcCVwLLtuUyAzbPP/RHwSPbel4HtWpJ/9ro7cH4W6wzgWWDnZpb/slkeGxUME/Bv4AVg0RLv6V4/HBgNXFbiu3yFtK5PBH5bOB/STsoTwFTgY+AuYI0S+e4F3A18CZydjdudVMy/ypb5eWTbSUE8lwOnAe8B7zeS99HARzm2729my/2D7DNfBQ4o+J7+DryerSNvkHaeuxVv/0Xz3AD4FzA9Wy9uBXoXTbNa9h2s1Ux8zwG/aWTcmGxZ7Aa83Nx2QPb72MznjQauIBXj3QqGbwJMA84tnEepeWbTBtAne90j+47fJ23/7wDnFcRY/NuyeSOxzfddM++3d2PgGdI28TSwYdH7vg3cTPrdmwE8D+xQNI8tSNvTTGA7oEuW25vZevEScEjRfI/Kls/0LLcbgBUKxnchrb+Ts7zfA24omkeT63s2zf7Ae82ty/X/WntO80RgQ0m7tPL9hQ4BRkTE16Qv5ZAS09QB55CKR3/ShnKXpMUBJH2PtAf/CPB90l7hDsDF2fsfIH2hxc01+wK3R8S0bF4PkQrQdqQjp7uBUcXNrEUeADaXVP9dDiHtmZYa/jlppSv2v8B1wDjS0dsKwI0F40/JclsPOBM4I2sSrHcFsA3w82yax4A7Ja3VRNzFNiT9+B9dEEMuklYEfpq9f042bEvgDtIy/R6wE+nH/NasabK9l8n/kn5wv08qKDdKWroFOQj4Z/b+3YDvAhcBNxR918Xqf8CeKRj2/SznsyNigeauiJheangWx6nAccCvSUdvR5G2iVMKJusG/BH4AfN2Pu4qceRyNnBtlsvFWdP7RcCfgHWAfUg7oxcXve9nwDdI6+yPGsn7PWBpSds1Mp5s+T1M+j72yj7zl6QfVkhF80PSTsDapHVvf+A3TcxznWye44Afklpz5pDWicXqp4uIN7N5b9HEvJYmLacnS4zrR9omriOtxytI2qyxebXQXNKOSWHL2i+yz/qyFfOrXxeGAX1J6++EbNxRpFahm5i3XY9twbzrSL85R2Wf8SFwk6RFASR9K5tfL2BHUovK70g5Fs7jbFKLy1qknfq/AzuT1u21Sc2kZ0s6sOjzj8vm+RNSq9YNBeN+SVpXf57lvSPweP3IFqzvTwDfauZ3fp4ce4ojKDrSzP7+M2kvuEv2usVHmqQf+K+Zd/QxkLTS9Cza2wlgSMGwpUl7Hwdmr68Bniya9zDSguudvT4LeLFg/PJZzNsUfM5kio4MgAeBvzSRQ/8svg2y1/cDR5JWlM+Kht/WxF7qZcDoEvMP4IKiYROAM7O/v5NNM7RommeAK7K/+5DvSGu+ZdjMOjE7WwYzmLcH+79Fe9RnFb1v1Wy69dprmTDvSHPnovlEwXyazT+bz1cUrHvZ8CtIRbyx7+Jo4IOiYT/LPu8HOb7L0WRHmqTzcDOAbYum2Qf4vIl5LJN93sZF+f6uaLq3gEOLhm2WTbt0QTz/AeqaibsuW2fnAp8A9wInAKsUTHNg9p2u3NS8iub7/4CJBa/3Y/6jnxEseDTRLfvediqxDZzbxGetl+W+dolx5wO3FLy+GPhHie2gNUealwErko66Vif9ns0gFaX55lFqnix4pHkH6cCjsc+8v6nxTXzX+xWvx8xrMVsze30a6ShwySbmGcCmBcNWy9abtYqmPRl4ron41s/mtVLBMnoQUCPTN7u+Z8N6ZMO2z7OOtqX37GnAcsBhbZjHIcCdEfEJQEQ8TvqRLNVbdByApCtITTx1QL9sXD/SkVihh0l7sg9kJ7ffA/pJ+kE2/s/Z/xdK2pe0V/kt4HNJ0+v/AZuS9mIa8zTpCHJItqe7MfBgRMzNYigc/kBzX0gjnit6/S6pMEDag4IF83+Eed9POTxB+tHpT1oXxgGFHb82BI4u+i5fzsbVf59XMf8y2Yu0J3t/wTzyLpOG7ygiPiAdfSxPfhsCXYEpRZ9VvxfbmMVJhaFQazv59Mvmd0tRDJcAPSV9A9L5Ukm3ZR2MviCdIwPoXTS/hiOo7L29gfOK5n1PNsl3Ct73dLb+Nioi5kbEQaQf/yNIy/YQYIKkzbPJNiA1a05ubD6SDpb0hKQPsnjOLJFHoQ2BnxTl8AmwGAsup69I32djFi+YrjCmxYC9SUWx3lWkvhzt0iEoIt4ltZoclH3WhIh4pul3NWp4FtuLks6XtF1BC1ebQyWdaqj3bvZ//ba1ATA2Ipo7Qn6q4O8fkraR8UXL8TcULENJm2cd597J1vMx2aj69eNK0lHoa5IulrRLfWtLC9f3+uXf1LrSYNE8E5USEZ9KOh04WdJVLX1/QQegJYt6bNWRmi3+1shbR5B6KY5pZHyxPwGDSOepxgP7SHoL2IW0sp1CKnwPkY7gflJiHjNKDAMgIuYo9Xodks1/WkS8mI1+iHSudTxpo272EpNGzCz+WFrWiav+B7D4x7wtJ+T/GxH1vfxelPRt4K/Ma3Kqb5K5psR73weIiAmSxpOOpJ7J/v9HRMwpmEfeZVL8HdW/H/LlX0c6R7hhifmUmne9j0hHeoVezf5fh/mbbZtTH++upKO9Yp9KWoJ0Pm8MqSnzg2zcS6SiX6jwh6x+3keR1stihYUtdxNhRLwPXA9cL+lE0nmrU0hHVE2StCtpOz+RtIM5jZT76U28rY60Tp1VYtwnRa+XIS2fxnxUMN2bBcN/Rjr6u03zd3JehHT64M+0j0tJzbSfAhc0Ms1cmtluI+I+SauSTtFsDvwDeEHSkIJtqbXmFs0jsv9b8vszJwo6yRW8dyMW3I4DUs9z0k7FNaSm24+BlUm/oV0BIuI5SauRTiFsQTryPC3rpNqS9b1++21qXWnQ6qKZ+StwOKmjQkvtQWqKq28iqbcMMFrSgIh4omD4QNIR3CPZOcxuzDtymQQcJGkL0kI4GFgzm+9dpCYFSHuLvyP90HQFLo2IzySNysavTip6H7YwlwdIBeJ55l9AD5HOsz0PTImIV5qYx0zSRtlSL2X/b0ZaySh4Xd8jsH5lWLF+pKRvAsWXiLQ2BkjNSBMkXRIR40k7Cv0KCmtjrgJ+J+lq0rmvwlaG+oLammVSKE/+40nnZRYr2OnJ4xmgu6RVI6L+iK++E9AJkm6IovOXkroDXxUPZ15Ht9Uj4m5KyM67fAP4bURMyIZtRDNHtxHxgaR3SM1qf29BfrlFxExJb5C2I0g7owdIWrmRo83NgGcjouHyC0l9mvmY8aTzkK9H1rZWSrZz8e1s+sa8QWol6sf8fQ1+Qdo5L75+bz/Sb0t7Fc17Sdtcb9L5zFI+BL4paZGC4vWD4oki4lPm7bxcSWr5WYe0HrZlu27O08DBkpbMcbRZ+B6AVSOisetjNyQd+R0dEf8FkLRB8UQRMR24jbSDcwapRXFwRPyzBev7uqSWqVI9qBfQpkP4SJ13fsO8c3gtcQjpHN8LEfFiwb9HSCdzCzsEBXCOpM0krUtamecyb0VbkdQj8RFSIb8h+//agh8ySCvV0qTmpHcLfhwnk/Y03yR1qNhaUh9JAyT9WtJOzeTyAOl81CGkNvZ6L5B6BR5C802zbwJrSeonaTlJ3ZqZHoCIeJ3Um3m4pG0krSXpfFLnj3Ozaf5L6hx0vKTvZyvf1aTzycUxbCFpRUnL5fn8gjgmkjrS1B8lnAwMk3Re1pz4bUnbSrpcWQeuTP0yuRx4pqhgXUvrl0lhbHnyf5CsJ7TSdZSrS9pA0i8lNXUp1HNkG2rB5wXpB3Zl4Ilsfn2zZXMIaSeqe4k4p5N2ss6QdLikNbP1YXdJZ2eTTcri/mX2nQ4h7WE3WkAK/BY4UtJvJX03m/9Oki7J8d75SDpE6cLwbSR9R9Lakk4gddi6LZvs+izekZK2krSapCGSdsvGvwqsK2lYlstRpM4hTTmD1HHkH5L6Z/PcQqlZsvBau41J39PDjc0oa4K+j4Jlp9QBaGNSf4DC36UXSUeGa6udOgRln/9d0jm6LxqZ7CHSb8sfsu9oV9KBSgNJp0vaOVuefUkteNOZ12z/JrBB9v7l1L6XfAwn/fbfIWnjbHnsoCY6iGU70lcAf5e0d7b+fF/SAdk6BKm/TADHZvPcifSbUpj3ryTtlW0jqwEHkIpffStN3vV9c9LVINNyZZzj5PDVwL3R+Elpkc5vBfN3BHobOLGRedYfXW7TyPijyDoEMa/L8takprqvST9U9R2SupMK0+uko8y52fQXMe+SkxHAT7O/b8s++66Cz/sdqZfWstn7ppD2zqZk06+f43uaks33O0XDb86G7100fATzdyJYhnSkOLXwu8z+/nnRe+c7sU86kd3oJSfZNGuQfkC+JK2QO7NgR6Bts+94Ji285CQbvhEFXdpJ5x7vJ10q8mU277+wYMee+mVyVIl5NrlMmNcRqPjSleKOaXnyX5zU7Pdm9lnvk44Gtmxm2Z8C/KvE8D7Zcnkrm9+72fx2JOu8QOlLTg5iXjf5z0jb12EF43+a5fAVae94cGG+NNLxKRu3E+koZAapOfQ54OSC8QvE00jO62frwWvZvD4jHUEcQUEnItI56atJzWtfkS6lqY+zS/b9fJrFcl32/ih4/34seMnJuqTOL5+Rtv3XSAVtmYJprgIuyZHHYNI2t3j2uv6So8Y6lzxL1iGINnQEamL8AvMgFYM3slzvIV1GUdgR6HfAi6RCOZW0nm9S8P7VSQcU02nFJSdF06xcPA/StnVb9tkzSC0tQxubRzZ8EeD4bH2Yma0fDwO7FkxzOOnymf+STkdsy/y/L4dk69y0LLengGEtXN9F2t73aG5dqf9Xv+E2StK/SE2L+zc54fzvWYT0Q3lYRLT4fGeO+fchdSD6rqQewKsR0eglEkp3w7gzIm7OXu9B+uIPyV5fQuq5en17x2qdn9KlC6+SdgJzNfFY+UhahXQ0v15ENHuzAEkPAP+MiL+UPTjrUCT9jLTTsV7kPP/baJNqdhg/jLQnNqqx6Uq8b1XSYXEXcnQGaKtIh9RvZs0W9Xec+H4zb7sP2FrS0tkP3tbZMLMWi3Rnp59TcM7UqqoPcHCegpk5DJhVvnCsA+sG7J+3YAKNH2lKeojU/fca0vWWuWYqaRapqfT35Thyk3Q9qUluOVKHnlNI56MuIl2424V0HdcfJG1IajZYmtQ09H5E9MvmcwDzLqI+PSKubO9Yzcysc2m2edbMzMySDv9oMDMzs46irddpVszUqVN9SGxm1on17Nmzwz8yz0eaZmZmOblompmZ5eSimdPEiROrHULV1GrutZo31G7utZo31HbuLeGiaWZmlpOLppmZWU4LTe/ZxkQE06dPZ+7cJh//12aLLbYYU6dOLetndFQLQ+51dXV0794dqcN3vjOzhdhCXzSnT59Ot27d6Nq1+FGC7atbt24stthiZf2MjmphyH3mzJlMnz6dpZZaqtqhmFknttA3z86dO7fsBdM6vq5du5a9tcHMbKEvmmZmZpXiormQefTRR3niiScaXl9xxRVcf33r74s/ffp0jj76aNZbbz0GDx7M9ttvz/jxTT3svrTtt9+eZ59d8KlYjz76KKuuuiqbbLIJm2yyCcOGDQPgzDPP5K9//Wur4zYzq4aF/pxmsV5XTmnX+X2+/0rtOr88Zs+ezaKLll40Y8aMoXv37gwYMACAAw44oE2fdeSRR9K7d2+eeeYZ6urqeOutt3j11VfbNM9igwYN4sYbb2zXeZo1pi2/AU9t0o6BWKfkI812cOGFFzJo0CAGDRrE8OHDmTRpEhtuuCEHH3ww/fv3Z5999mHGjBkAPPfccwwdOpTBgwez88478/777wPpSO3EE09k880356KLLuKee+5hyJAhbLrppgwbNowPP/yQSZMmceWVVzJ8+HA22WQTxo4dO98R2/bbb88pp5zClltuyQYbbMDYsWMBmDFjBvvttx8DBgxgr732YsiQITz77LO8+eabjB8/npNOOom6urQq9OnTh2222QaAPffck8GDB7PZZpsxYsQIAObMmcNhhx3GoEGD2Gijjfjb3/7W8D3cfvvtC3x2Hs8//zxbbbUVG220EXvttReff/45H330EYMHDwbghRdeoFevXrzzzjsArLfeeg3fp5lZJXW6I81Ke+6557juuuu4//77iQi22morNt54YyZOnMhf//pXBg4cyOGHH87ll1/OoYceyvHHH891113Hcsstx6233sppp53WUHhmzZrF6NGjAfj888+5//77kcTVV1/N+eefz+mnn87+++9P9+7d+eUvfwnAww8/PF88s2fP5sEHH+Rf//oXZ599NnfccQeXX345vXr14oknnuDll19m0003BWDChAmsu+66LLLIIiVz+9vf/sbSSy/NZ599xtChQ9lxxx15++23ee+99xg3blxDnE19NsC4cePYZJO0C7/TTjtx3HHHzfc5hx56KOeccw6bbLIJp59+OmeddRZnnXUWX3/9NdOmTWPcuHGsv/76jBs3jojgG9/4BksssURbFpuZWau4aLbRuHHj2H777VlyySUB2GGHHRg3bhwrr7wyAwcOBOBnP/sZl1xyCUOGDGHChAnstNNOQOr5u/zyyzfM6yc/+UnD31OmTGH//ffngw8+YObMmfTu3TtXPD/+8Y+BdDT29ttvN8R46KGHArDOOuvQr1+/XPO6+OKLufPOO4kIpkyZwuuvv07fvn156623+NWvfsU222zDlltu2eRnQ9PNs1OnTmXatGkNRXXPPfdk3333BaB///488cQTjB07lmOOOYYHHniAiGDQoEG54jcza28umhUiiYhgrbXWYtSoUSWnqS+8AMcffzyHH344Q4cO5dFHH+Wss87K9TndunUDYJFFFmH27NlNTrv22mvz4osvMmfOnAWONh999FEefvhhRo0aRV1dHbvssgtfffUVvXr1YsyYMTzwwANcccUV3HbbbQ1Hyi357Dw22mgjxo0bxzvvvMP222/P+eefjyS23nrrNs/bzKw1fE6zjQYNGsRdd93FjBkz+PLLL7nrrrsYNGgQkydP5sknnwTg5ptvZuDAgfTt25ePP/64YfisWbOYMGFCyflOmzaNFVdcEWC+3rHdu3fniy++aFGMAwcO5PbbbwfglVde4eWXXwZgtdVWY/311+fMM88kIj2udNKkSdx3331MmzaNnj17ssQSSzBx4sSGHrWffPIJc+fOZdiwYZx00kn8+9//blEsxXr27EnPnj0bzoHecMMNbLzxxkD6bm+66Sa+/e1vU1dXx9JLL82oUaN8pGlmVeMjzTZab7312HPPPRkyZAgAe++9N7169aJv375cdtllHHHEEay55poceOCBdO3alauuuooTTjiBadOmNXSqWXvttReY74knnsi+++5Lr1692GyzzZg0aRIA2223Hfvssw93330355xzTq4YDzzwQA477DAGDBhA3759WWuttejRowcAF1xwASeddBLrr78+iy++OMssswynnXYa/fr148orr6R///6svvrq/PCHPwTg3Xff5fDDD2+4kcApp5zS5u/woosu4phjjmHGjBn06dOH4cOHA9C7d28igo022ghIxX/KlCn06tWrzZ9pZtYaqj/C6OimTp1aMtCpU6fSs2fPsn/+V199lftWcpMmTWL33Xdv6CxTbXPmzGHWrFkstthivPnmmwwbNozx48fnvpNSS3KvpvZeFyZOnEjfvn3bbX4Lk4U597ZdcjJjoc27rTrCMu/Zs2eHv3m0jzRrwIwZM/jxj3/MrFmziAj+9Kc/+daDZmat4KJZBr179+4wR5kASy21VMOlLGZm1nruCGRmZpaTjzTNOqG23k7St5MzK81HmmZmZjm5aJqZmeXkollhd955J6+88krD68MOO6zhHq1mZtaxdbpzmt333bxd5zf9qtHtOr+77rqLbbfdlrXWWqtd52tmZuXX6YpmpU2aNIldd92VgQMH8uSTT7LCCitw3XXX8f7773Pcccfx8ccfs8QSS3D++efz2Wefcc899/DYY49x7rnncs0118w3r3XXXZc99tiDe++9l9mzZzNixAjWWGMNpk+fzvHHH89zzz0HwAknnMCwYcO4+eabOe+884gItt56a37/+98DsNJKK3HAAQcwatQoll9+eU4++WROPvlkJk+ezJlnnsnQoUOZM2cOp556KmPGjOHrr7/m4IMPZv/996/492dm7cOdvyrDzbPt4PXXX+eggw7i8ccfp2fPnowcOZKjjjqKc845h4cffpjTTjuNY489lgEDBrDddttx2mmnMWbMGFZbbbUF5rXsssvyyCOPcMABBzQ8J/Pcc8+lR48ejB07lrFjxzJ48GDee+89Tj31VEaOHMmjjz7KM888w5133gnAl19+yWabbcbjjz9O9+7d+eMf/8jtt9/OP/7xD8444wwArrnmGnr06MFDDz3EQw89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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 344
},
"id": "PPScNz_wnIMt",
"outputId": "69bbce9a-ddda-4e17-d148-51d76d5885da"
},
"source": [
"all_statements[['operatingCashFlow', 'capitalExpenditure', 'freeCashFlow']].plot(kind='bar', title=ticker + ' Cash Flow Situation')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "display_data",
"data": {
"image/png": "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ySefTOk+RcpSlc+AKP5/S9WoJVQJ9957L7m5ueTm5jJixAgWLVrEEUccwfnnn0+HDh0488wzWbduHQD5+fn07duX7t27c9JJJ/Htt98CQUtiyJAh9OjRg/vvv5+XX36Z3r1707VrVwYMGMCKFStYtGgRo0ePZsSIEXTp0oV33nlnqxZFv379uPHGG+nVqxeHH34477zzDgDr1q3jrLPOomPHjpxxxhn07t2bOXPm8NVXXzF79myGDh1KnTrBqW7VqhVHH300AKeffjrdu3enW7duPProowBs3ryZiy++mNzcXPLy8rjvvvtK3oeJEyduc+zK+Oijj+jTpw95eXmcccYZ/PDDD6xcuZLu3bsD8PHHH9O0aVMWLw5mZG/Tpk3J+yki2S3jWkLplp+fz/jx45k6dSruTp8+fejcuTMFBQXcc889dOrUiUsuuYSRI0dy0UUXcc011zB+/Hh22203JkyYwM0331zyQb5x40amT58OwA8//MDUqVMxM8aOHctdd93FsGHDOPvss2ncuDGXXXYZAG+88cZW8WzatIlp06bx6quvctttt/H8888zcuRImjZtyqxZs/j000/p2rUrAPPmzePQQw9lhx12SJrbfffdR7NmzVi9ejV9+/bl+OOP5+uvv2bZsmXMnDmzJM7yjg0wc+ZMunTpAsAJJ5zAH//4x62Oc9FFF3H77bfTpUsXhg0bxvDhwxk+fDg///wzhYWFzJw5k7Zt2zJz5kzcnV/+8pc0atSoOqdNRDKEilAFZs6cSb9+/fjFL34BwHHHHcfMmTPZZ5996NSpEwC/+93vePDBB+nduzfz5s3jhBNOAII7+/bYY4+SfZ144okl3y9dupSzzz6b5cuXs2HDBlq2bFmpePr37w8ErYWvv/66JMaLLroIgIMPPphDDjmkUvt64IEHePHFF3F3li5dyoIFC8jJyWHhwoVcffXVHH300fTq1avcY0P53XFr1qyhsLCwpEidfvrpDB48GIAOHTowa9Ys3nnnHa688kpee+013J3c3NxKxS8imU9FKEXMDHendevWTJmSfObr4kIGcM0113DJJZfQt29fZsyYwfDhwyt1nAYNGgCwww47sGnTpnK3Peigg/jkk0/YvHnzNq2hGTNm8MYbbzBlyhTq1KnDb3/7W9avX0/Tpk156623eO211xg1ahTPPfdcSUuuKseujLy8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E0/kp59+qnRO9957b8lICyNGjADg7rvvLmk1XXvttfTv3x+AN954IyUtQBGRZFSEKnDnnXey55578sILL3DxxRczf/58Jk6cyMiRIxkyZAi///3vef311xk7diyXX345AHfccQfdunVj2rRpvPDCC9xwww2sXbuWefPm0aZNm6THycnJ4eWXX2bGjBlcd9113HTTTQCMGjWKiy66iLfeeovp06eXjFm3YMECzjvvPN59912aNGnCpEmTSvZ1/fXXl3THzZ07d6vj5OfnM378eKZOncqUKVMYO3YsH3/8Mbm5uSVTReTn57N27Vo2btzIzJkzycvLS/n7KiICGdgdF7Vjjz2Whg0bAsEgoaWn2f7xxx8pKipi2rRpvPzyyyUTu/38888sWbKk3P2WNaVDhw4duOOOO/jmm2/o378/+++/PwAtW7bksMMOA4KpF0oPRFped9zMmTPp169fyWjWxx13HLNmzeLCCy8kPz+fwsJC6tevz2GHHcacOXOYOXMmt9122/a8VSIiFVIRqqLSUxFs2bKFqVOnbvOMjbszduzYbe7Jb926Nfn5+fTr12+b/ZY1pcMpp5xC+/bteeWVVzjllFO48847adWq1VYP8H673vlp7c/M+W4Dq37ewleFm7a5U3DDFvj4+7LvHqxXrx4tW7Zk/PjxdOjQgd/85jfMmDGDL7/8kgMPPLDyb5CISBWoO64aevXqxUMPPVTy+qOPPgKCKQoeeughigeHLZ7W4IILLuDxxx9n9uz/3hw4adIkVqxYUeaUDgsXLqRVq1ZcdNFF9O3bd5vutarKzc1l8uTJrFu3jrVr1zJ58mQ6duxYsu7ee++lc+fO5ObmMnr0aA477LAqzyckmWnttGMq/SWSKipC1XDbbbcxZ84c8vLy6NixI6NHjwbg6quvZuPGjXTu3JlOnTpxyy23ALD77rszatQorr/+etq3b0+HDh2YNm0ajRs3LnNKh+eee47c3Fy6dOnCvHnzGDhwYLVibtOmDaeffjq9e/emT58+DBo0qGTm17y8PL799luOOOIIdt99dxo0aFDmreAiIqlQ7akcUiUVUzlU52HVTBm6JpnK5g2Znbumcthaqof1r0oLpzKPNtSUmpjKobK5R5k31MxUDunOPeVTOYiIiGwvFSEREYmMipCIiERGt2iLJMiU6wMi2aDWt4Tq1KnDhg2Vv/Au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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 506
},
"id": "klgBbGVvnNmf",
"outputId": "9c82f88e-1c3f-4ef3-b75b-df0f3023f034"
},
"source": [
"print(\"Return on Equity should be 12% to 15%\")\n",
"all_statements['ROE'] = all_statements['netIncome'] / all_statements['totalStockholdersEquity']\n",
"print(all_statements['ROE'])\n",
"all_statements['ROE'].plot(kind='bar', title=ticker + ' ROE (should be above 10%)')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Return on Equity should be 12% to 15%\n",
"date\n",
"2016-01-03 0.216571\n",
"2017-01-01 0.234883\n",
"2017-12-31 0.021609\n",
"2018-12-30 0.256008\n",
"2019-12-29 0.254225\n",
"TTM 0.257503\n",
"Name: ROE, dtype: float64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"id": "JnfD0meynUcR",
"outputId": "5d47af05-c7a8-44a2-854c-0ce517dea8a1"
},
"source": [
"all_statements['grossProfitMargin'] = (all_statements['revenue'] - all_statements['costOfRevenue']) / all_statements['revenue']\n",
"print(all_statements['grossProfitMargin'])\n",
"all_statements['grossProfitMargin'].plot(kind='bar', title=ticker + ' Gross Profit Margin')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"date\n",
"2016-01-03 0.693824\n",
"2017-01-01 0.698985\n",
"2017-12-31 0.668358\n",
"2018-12-30 0.669212\n",
"2019-12-29 0.665411\n",
"TTM 0.653834\n",
"Name: grossProfitMargin, dtype: float64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 488
},
"id": "Y2GX2IkAnbYC",
"outputId": "338a9983-ae6c-4435-ac47-f92f58c0aa1d"
},
"source": [
"all_statements['netProfitMargin'] = all_statements['netIncome'] / all_statements['revenue']\n",
"print(all_statements['netProfitMargin'])\n",
"all_statements['netProfitMargin'].plot(kind='bar', title=ticker + ' Net Profit Margin')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"date\n",
"2016-01-03 0.219896\n",
"2017-01-01 0.230074\n",
"2017-12-31 0.017005\n",
"2018-12-30 0.187507\n",
"2019-12-29 0.184245\n",
"TTM 0.211639\n",
"Name: netProfitMargin, dtype: float64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 506
},
"id": "504xe2wdneeK",
"outputId": "073cb2d1-819a-4667-8c8b-fb2b8fa709d5"
},
"source": [
"print(\"Current assets / current liabilities ratio should be > 1.\")\n",
"all_statements['Current-Ratio'] = all_statements['totalCurrentAssets'] / all_statements['totalCurrentLiabilities']\n",
"print(all_statements['Current-Ratio'])\n",
"all_statements['Current-Ratio'].plot(kind='bar', title=ticker + ' Current Ratio (Must Be Consistent and Greater Than 1)')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Current assets / current liabilities ratio should be > 1.\n",
"date\n",
"2016-01-03 2.169964\n",
"2017-01-01 2.473922\n",
"2017-12-31 1.411010\n",
"2018-12-30 1.473999\n",
"2019-12-29 1.258870\n",
"TTM 1.482174\n",
"Name: Current-Ratio, dtype: float64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 506
},
"id": "imXFM37anl37",
"outputId": "8d9f52e9-b2a6-40bd-8990-7052c3244791"
},
"source": [
"print(\"Debt servicing ratio should be < 0.2.\")\n",
"\n",
"all_statements['Debt-Servicing-Ratio'] = all_statements['interestExpense'] / all_statements['operatingCashFlow']\n",
"print(all_statements['Debt-Servicing-Ratio'])\n",
"all_statements['Debt-Servicing-Ratio'].plot(kind='bar', title=ticker + ' Debt Servicing Ratio (< 0.2)')\n",
"plt.show()"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Debt servicing ratio should be < 0.2.\n",
"date\n",
"2016-01-03 0.028208\n",
"2017-01-01 0.038685\n",
"2017-12-31 0.044358\n",
"2018-12-30 0.045268\n",
"2019-12-29 0.013580\n",
"TTM 0.007364\n",
"Name: Debt-Servicing-Ratio, dtype: float64\n"
],
"name": "stdout"
},
{
"output_type": "display_data",
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 432x288 with 1 Axes>"
]
},
"metadata": {
"tags": [],
"needs_background": "light"
}
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "cAW4tkXrn1tQ",
"outputId": "6371add7-2703-4041-faaa-dc6c12475162"
},
"source": [
"# List of data we want to extract from Finviz Table\n",
"metric = ['Price', 'EPS next 5Y', 'Beta', 'Shs Outstand']\n",
"\n",
"def fundamental_metric(soup, metric):\n",
" # the table which stores the data in Finviz has html table attribute class of 'snapshot-td2'\n",
" return soup.find(text = metric).find_next(class_='snapshot-td2').text\n",
"\n",
"def get_finviz_data(ticker):\n",
" try:\n",
" url = (\"http://finviz.com/quote.ashx?t=\" + ticker.lower())\n",
" soup = bs(requests.get(url,headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0'}).content)\n",
" dict_finviz = {}\n",
" for m in metric:\n",
" dict_finviz[m] = fundamental_metric(soup,m)\n",
" for key, value in dict_finviz.items():\n",
" # replace percentages\n",
" if (value[-1]=='%'):\n",
" dict_finviz[key] = value[:-1]\n",
" dict_finviz[key] = float(dict_finviz[key])\n",
" # billion\n",
" if (value[-1]=='B'):\n",
" dict_finviz[key] = value[:-1]\n",
" dict_finviz[key] = float(dict_finviz[key])*1000000000\n",
" # million\n",
" if (value[-1]=='M'):\n",
" dict_finviz[key] = value[:-1]\n",
" dict_finviz[key] = float(dict_finviz[key])*1000000\n",
" try:\n",
" dict_finviz[key] = float(dict_finviz[key])\n",
" except:\n",
" pass\n",
" except Exception as e:\n",
" print (e)\n",
" print ('Not successful parsing ' + ticker + ' data.')\n",
" return dict_finviz\n",
"\n",
"finviz_data = get_finviz_data(ticker)\n",
"\n",
"finviz_data"
],
"execution_count": null,
"outputs": [
{
"output_type": "execute_result",
"data": {
"text/plain": [
"{'Beta': 0.73,\n",
" 'EPS next 5Y': 4.3,\n",
" 'Price': 169.41,\n",
" 'Shs Outstand': 2630000000.0}"
]
},
"metadata": {
"tags": []
},
"execution_count": 101
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "votmRub9n8Td",
"outputId": "6f3e3f13-0c32-4a24-8406-20b64e544306"
},
"source": [
"Beta = finviz_data['Beta']\n",
"\n",
"discount_rate = 7\n",
"if(Beta<0.80):\n",
" discount_rate = 5\n",
"elif(Beta>=0.80 and Beta<1):\n",
" discount_rate = 6\n",
"elif(Beta>=1 and Beta<1.1):\n",
" discount_rate = 6.5\n",
"elif(Beta>=1.1 and Beta<1.2):\n",
" discount_rate = 7\n",
"elif(Beta>=1.2 and Beta<1.3):\n",
" discount_rate =7.5\n",
"elif(Beta>=1.3 and Beta<1.4):\n",
" discount_rate = 8\n",
"elif(Beta>=1.4 and Beta<1.6):\n",
" discount_rate = 8.5\n",
"elif(Beta>=1.61):\n",
" discount_rate = 9\n",
"\n",
"print(\"Discount Rate: \", discount_rate)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Discount Rate: 5\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "xdHCMpQloBZO",
"outputId": "59d4a307-3221-4979-cb15-8bd49fa49a48"
},
"source": [
"cash_flow = all_statements.iloc[-1]['freeCashFlow']\n",
"total_debt = all_statements.iloc[-1]['totalDebt']\n",
"cash_and_ST_investments = all_statements.iloc[-1]['cashAndShortTermInvestments']\n",
"\n",
"EPS_growth_5Y = finviz_data['EPS next 5Y']\n",
"EPS_growth_6Y_to_10Y = EPS_growth_5Y/2 # Half the previous growth rate, conservative estimate\n",
"EPS_growth_11Y_to_20Y = np.minimum(EPS_growth_6Y_to_10Y, 4) # Slightly higher than long term inflation rate, conservative estimate\n",
"\n",
"\n",
"shares_outstanding = finviz_data['Shs Outstand']\n",
"\n",
"print(\"Free Cash Flow: \", cash_flow)\n",
"print(\"Total Debt: \", total_debt)\n",
"print(\"Cash and ST Investments: \", cash_and_ST_investments)\n",
"\n",
"print(\"EPS Growth 5Y: \", EPS_growth_5Y)\n",
"print(\"EPS Growth 6Y to 10Y: \", EPS_growth_6Y_to_10Y)\n",
"print(\"EPS Growth 11Y to 20Y: \", EPS_growth_11Y_to_20Y)\n",
"\n",
"print(\"Discount Rate: \", discount_rate)\n",
"\n",
"print(\"Shares Outstanding: \", shares_outstanding)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Free Cash Flow: 18307000000.0\n",
"Total Debt: 37758000000.0\n",
"Cash and ST Investments: 30781000000.0\n",
"EPS Growth 5Y: 4.3\n",
"EPS Growth 6Y to 10Y: 2.15\n",
"EPS Growth 11Y to 20Y: 2.15\n",
"Discount Rate: 5\n",
"Shares Outstanding: 2630000000.0\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "_3kKUhRPoFo-",
"outputId": "0849ac05-ec44-456a-a131-c446e576168c"
},
"source": [
"def calculate_intrinsic_value(cash_flow, total_debt, cash_and_ST_investments,\n",
" EPS_growth_5Y, EPS_growth_6Y_to_10Y, EPS_growth_11Y_to_20Y,\n",
" shares_outstanding, discount_rate):\n",
"\n",
" # Convert all percentages to decmials\n",
" EPS_growth_5Y_d = EPS_growth_5Y/100\n",
" EPS_growth_6Y_to_10Y_d = EPS_growth_6Y_to_10Y/100\n",
" EPS_growth_11Y_to_20Y_d = EPS_growth_11Y_to_20Y/100\n",
" discount_rate_d = discount_rate/100\n",
" print(\"Discounted Cash Flows\\n\")\n",
"\n",
" # Projecting cash flows from year 1 to year 20\n",
" cash_flow_list = []\n",
" # Years 1 to 5\n",
" for year in range(1, 6):\n",
" cash_flow*=(1 + EPS_growth_5Y_d)\n",
" cash_flow_discounted = cash_flow/((1 + discount_rate_d)**year)\n",
" cash_flow_list.append(cash_flow_discounted)\n",
" print(\"Year \" + str(year) + \": $\" + str(cash_flow_discounted)) ## Print out the projected discounted cash flows\n",
"\n",
" # Years 6 to 10\n",
" for year in range(6, 11):\n",
" cash_flow*=(1 + EPS_growth_6Y_to_10Y_d)\n",
" cash_flow_discounted = cash_flow/((1 + discount_rate_d)**year)\n",
" cash_flow_list.append(cash_flow_discounted)\n",
" print(\"Year \" + str(year) + \": $\" + str(cash_flow_discounted)) ## Print out the projected discounted cash flows\n",
"\n",
" # Years 11 to 20\n",
" for year in range(11, 21):\n",
" cash_flow*=(1 + EPS_growth_11Y_to_20Y_d)\n",
" cash_flow_discounted = cash_flow/((1 + discount_rate_d)**year)\n",
" cash_flow_list.append(cash_flow_discounted)\n",
" print(\"Year \" + str(year) + \": $\" + str(cash_flow_discounted)) ## Print out the projected discounted cash flows\n",
"\n",
" intrinsic_value = (sum(cash_flow_list) - total_debt + cash_and_ST_investments)/shares_outstanding\n",
"\n",
" return intrinsic_value\n",
"\n",
"\n",
"intrinsic_value = calculate_intrinsic_value(cash_flow, total_debt, cash_and_ST_investments,\n",
" EPS_growth_5Y, EPS_growth_6Y_to_10Y, EPS_growth_11Y_to_20Y,\n",
" shares_outstanding, discount_rate)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Discounted Cash Flows\n",
"\n",
"Year 1: $18184953333.333332\n",
"Year 2: $18063720311.11111\n",
"Year 3: $17943295509.037033\n",
"Year 4: $17823673538.976784\n",
"Year 5: $17704849048.716934\n",
"Year 6: $17224288860.251762\n",
"Year 7: $16756772448.330643\n",
"Year 8: $16301945767.590242\n",
"Year 9: $15859464382.469934\n",
"Year 10: $15428993206.374323\n",
"Year 11: $15010206247.91559\n",
"Year 12: $14602786364.043596\n",
"Year 13: $14206425019.8767\n",
"Year 14: $13820822055.051476\n",
"Year 15: $13445685456.414364\n",
"Year 16: $13080731136.88312\n",
"Year 17: $12725682720.310575\n",
"Year 18: $12380271332.18786\n",
"Year 19: $12044235396.028475\n",
"Year 20: $11717320435.279133\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "VB8bZZ4boKwg",
"outputId": "fe1f1f4c-8605-4220-e6ab-5e7541894a86"
},
"source": [
"print(\"Intrinsic Value: \", intrinsic_value)\n",
"current_price = finviz_data['Price']\n",
"print(\"Current Price: \", current_price)\n",
"print(\"Margin of Safety: \", (1-current_price/intrinsic_value)*100)"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Intrinsic Value: 113.06050287839659\n",
"Current Price: 169.41\n",
"Margin of Safety: -49.84012602722163\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "eFiHmNc2Ms-Z",
"outputId": "f3873c00-01f2-4dae-e669-5d584de1f738"
},
"source": [
"if intrinsic_value > current_price :\n",
" print(\"Buy is Good option\")\n",
"else: print(\"Search another stock to buy\")"
],
"execution_count": null,
"outputs": [
{
"output_type": "stream",
"text": [
"Search another stock to buy\n"
],
"name": "stdout"
}
]
},
{
"cell_type": "code",
"metadata": {
"id": "1KGQE5Z3OJLS"
},
"source": [],
"execution_count": null,
"outputs": []
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment