Skip to content

Instantly share code, notes, and snippets.

@wesslen
Created September 22, 2024 21:25
Show Gist options
  • Select an option

  • Save wesslen/5adb4d026af8d4b824caf2eefafedafc to your computer and use it in GitHub Desktop.

Select an option

Save wesslen/5adb4d026af8d4b824caf2eefafedafc to your computer and use it in GitHub Desktop.
sec-financials-parsing.ipynb
Display the source blob
Display the rendered blob
Raw
{
"nbformat": 4,
"nbformat_minor": 0,
"metadata": {
"colab": {
"provenance": [],
"authorship_tag": "ABX9TyOvFvvYw4TsGk/JCMdsRvml",
"include_colab_link": true
},
"kernelspec": {
"name": "python3",
"display_name": "Python 3"
},
"language_info": {
"name": "python"
}
},
"cells": [
{
"cell_type": "markdown",
"metadata": {
"id": "view-in-github",
"colab_type": "text"
},
"source": [
"<a href=\"https://colab.research.google.com/gist/wesslen/5adb4d026af8d4b824caf2eefafedafc/sec-financials-parsing.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
]
},
{
"cell_type": "markdown",
"source": [
"Upload zip from [here](https://www.sec.gov/about/dera_financial-statement-data-set)"
],
"metadata": {
"id": "3dsFNo-JibkO"
}
},
{
"cell_type": "code",
"source": [
"!unzip 2024q2.zip"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "5UggOiGZimO0",
"outputId": "75750f2c-8683-4f54-d30d-f62b3d8cbf1b"
},
"execution_count": 7,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Archive: 2024q2.zip\n",
" inflating: sub.txt \n",
" inflating: pre.txt \n",
" inflating: num.txt \n",
" inflating: tag.txt \n",
" inflating: readme.htm \n"
]
}
]
},
{
"cell_type": "code",
"execution_count": 45,
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/"
},
"id": "O_G6ZjR1htYA",
"outputId": "640119c9-8cd9-49ae-839b-1e4315204c86"
},
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Loading data...\n",
"Data loaded successfully.\n"
]
}
],
"source": [
"# Install required libraries\n",
"\n",
"import os\n",
"import zipfile\n",
"import pandas as pd\n",
"import requests\n",
"from io import BytesIO\n",
"import datetime\n",
"\n",
"\n",
"def load_data(year, quarter):\n",
" base_path = f\".\"\n",
" sub_df = pd.read_csv(os.path.join(base_path, \"sub.txt\"), sep=\"\\t\", low_memory=False)\n",
" num_df = pd.read_csv(os.path.join(base_path, \"num.txt\"), sep=\"\\t\", low_memory=False)\n",
" pre_df = pd.read_csv(os.path.join(base_path, \"pre.txt\"), sep=\"\\t\", low_memory=False)\n",
"\n",
" return sub_df, num_df, pre_df\n",
"\n",
"def get_company_data(sub_df, num_df, pre_df, company_name):\n",
" company_info = sub_df[sub_df['name'].str.contains(company_name, case=False, na=False)]\n",
" if company_info.empty:\n",
" raise ValueError(f\"Company '{company_name}' not found in the dataset.\")\n",
"\n",
" cik = company_info['cik'].iloc[0]\n",
" adsh = company_info[company_info['fp'] == 'Q1']['adsh'].iloc[0]\n",
"\n",
" company_num_df = num_df[num_df['adsh'] == adsh]\n",
" company_pre_df = pre_df[pre_df['adsh'] == adsh]\n",
"\n",
" return company_num_df, company_pre_df, cik\n",
"\n",
"def generate_financial_statement(company_num_df, company_pre_df, statement_type):\n",
" stmt_filter = 'BS' if statement_type == 'BS' else 'CF'\n",
"\n",
" stmt_pre_df = company_pre_df[company_pre_df['stmt'] == stmt_filter]\n",
" stmt_df = pd.merge(stmt_pre_df, company_num_df, on=['tag', 'version'], how='left')\n",
" stmt_df = stmt_df.sort_values(['report', 'line'])\n",
"\n",
" statement = pd.DataFrame({\n",
" 'Line Item': stmt_df['plabel'],\n",
" 'Value': stmt_df['value']\n",
" })\n",
"\n",
" return statement\n",
"\n",
"# Cell 1: Download and load data\n",
"year = 2024 # Update with the desired year\n",
"quarter = 2 # Update with the desired quarter\n",
"\n",
"print(\"Loading data...\")\n",
"sub_df, num_df, pre_df = load_data(year, quarter)\n",
"\n",
"print(\"Data loaded successfully.\")"
]
},
{
"cell_type": "code",
"source": [
"# Cell 2: User input and data retrieval\n",
"company_name = input(\"Enter the company name: \")\n",
"\n",
"try:\n",
" print(f\"Retrieving data for {company_name}...\")\n",
" company_num_df, company_pre_df, cik = get_company_data(sub_df, num_df, pre_df, company_name)\n",
" print(f\"Data retrieved successfully for {company_name} (CIK: {cik})\")\n",
"except ValueError as e:\n",
" print(f\"Error: {e}\")\n",
"\n",
"# Cell 3: Generate and display Balance Sheet\n",
"print(\"Generating Balance Sheet...\")\n",
"balance_sheet = generate_financial_statement(company_num_df, company_pre_df, 'BS')\n",
"display(balance_sheet)\n",
"\n",
"# Cell 4: Generate and display Cash Flow Statement\n",
"print(\"Generating Cash Flow Statement...\")\n",
"cash_flow = generate_financial_statement(company_num_df, company_pre_df, 'CF')\n",
"display(cash_flow)\n",
"\n",
"# Optional Cell 5: Export to CSV\n",
"balance_sheet.to_csv(f\"{company_name}_balance_sheet.csv\", index=False)\n",
"cash_flow.to_csv(f\"{company_name}_cash_flow.csv\", index=False)\n",
"print(f\"Financial statements exported as CSV files.\")"
],
"metadata": {
"colab": {
"base_uri": "https://localhost:8080/",
"height": 938
},
"id": "vsJHdSAXjYf-",
"outputId": "232ab0b3-cc46-45ef-c1e9-e67f0d46a86e"
},
"execution_count": 46,
"outputs": [
{
"output_type": "stream",
"name": "stdout",
"text": [
"Enter the company name: ALLIANT ENERGY CORP\n",
"Retrieving data for ALLIANT ENERGY CORP...\n",
"Data retrieved successfully for ALLIANT ENERGY CORP (CIK: 352541)\n",
"Generating Balance Sheet...\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
" Line Item Value\n",
"3 Statement [Table] NaN\n",
"59 Legal Entity [Axis] NaN\n",
"57 Entity [Domain] NaN\n",
"240 IPL [Member] NaN\n",
"242 WPL [Member] NaN\n",
".. ... ...\n",
"49 Common stock, shares outstanding (in shares) 2.563790e+08\n",
"235 Shares in deferred compensation trust (in shares) 3.419370e+05\n",
"236 Shares in deferred compensation trust (in shares) 3.790060e+05\n",
"230 Shares in deferred compensation trust, weighte... 3.496000e+01\n",
"231 Shares in deferred compensation trust, weighte... 3.448000e+01\n",
"\n",
"[243 rows x 2 columns]"
],
"text/html": [
"\n",
" <div id=\"df-2d9c0833-d76d-4b3c-a987-c572fd3cb7c3\" class=\"colab-df-container\">\n",
" <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>Line Item</th>\n",
" <th>Value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Statement [Table]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>59</th>\n",
" <td>Legal Entity [Axis]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>57</th>\n",
" <td>Entity [Domain]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>240</th>\n",
" <td>IPL [Member]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>242</th>\n",
" <td>WPL [Member]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>49</th>\n",
" <td>Common stock, shares outstanding (in shares)</td>\n",
" <td>2.563790e+08</td>\n",
" </tr>\n",
" <tr>\n",
" <th>235</th>\n",
" <td>Shares in deferred compensation trust (in shares)</td>\n",
" <td>3.419370e+05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>236</th>\n",
" <td>Shares in deferred compensation trust (in shares)</td>\n",
" <td>3.790060e+05</td>\n",
" </tr>\n",
" <tr>\n",
" <th>230</th>\n",
" <td>Shares in deferred compensation trust, weighte...</td>\n",
" <td>3.496000e+01</td>\n",
" </tr>\n",
" <tr>\n",
" <th>231</th>\n",
" <td>Shares in deferred compensation trust, weighte...</td>\n",
" <td>3.448000e+01</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>243 rows × 2 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-2d9c0833-d76d-4b3c-a987-c572fd3cb7c3')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-2d9c0833-d76d-4b3c-a987-c572fd3cb7c3 button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-2d9c0833-d76d-4b3c-a987-c572fd3cb7c3');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-337d1e4c-a36a-41ec-8a4e-cd996f6ea269\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-337d1e4c-a36a-41ec-8a4e-cd996f6ea269')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-337d1e4c-a36a-41ec-8a4e-cd996f6ea269 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_1c691f03-11d7-4790-8201-9be141df17da\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('balance_sheet')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_1c691f03-11d7-4790-8201-9be141df17da button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('balance_sheet');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "balance_sheet",
"summary": "{\n \"name\": \"balance_sheet\",\n \"rows\": 243,\n \"fields\": [\n {\n \"column\": \"Line Item\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 54,\n \"samples\": [\n \"ATC Holdings\",\n \"Common stock, par value (in dollars per share)\",\n \"Total liabilities and equity\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Value\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 3912263548.6453214,\n \"min\": 0.0,\n \"max\": 21248000000.0,\n \"num_unique_values\": 178,\n \"samples\": [\n 17000000.0,\n 554000000.0,\n 1892000000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Generating Cash Flow Statement...\n"
]
},
{
"output_type": "display_data",
"data": {
"text/plain": [
" Line Item Value\n",
"1 Statement [Table] NaN\n",
"10 Legal Entity [Axis] NaN\n",
"3 Entity [Domain] NaN\n",
"185 IPL [Member] NaN\n",
"186 WPL [Member] NaN\n",
".. ... ...\n",
"63 Accrued capital expenditures 152000000.0\n",
"94 Beneficial interest obtained in exchange for s... 184000000.0\n",
"95 Beneficial interest obtained in exchange for s... 153000000.0\n",
"96 Beneficial interest obtained in exchange for s... 184000000.0\n",
"97 Beneficial interest obtained in exchange for s... 153000000.0\n",
"\n",
"[187 rows x 2 columns]"
],
"text/html": [
"\n",
" <div id=\"df-c235a45b-26ba-4f52-ba3d-eb616512819a\" class=\"colab-df-container\">\n",
" <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>Line Item</th>\n",
" <th>Value</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>Statement [Table]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>10</th>\n",
" <td>Legal Entity [Axis]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>Entity [Domain]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>185</th>\n",
" <td>IPL [Member]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>186</th>\n",
" <td>WPL [Member]</td>\n",
" <td>NaN</td>\n",
" </tr>\n",
" <tr>\n",
" <th>...</th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th>63</th>\n",
" <td>Accrued capital expenditures</td>\n",
" <td>152000000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>94</th>\n",
" <td>Beneficial interest obtained in exchange for s...</td>\n",
" <td>184000000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>95</th>\n",
" <td>Beneficial interest obtained in exchange for s...</td>\n",
" <td>153000000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>96</th>\n",
" <td>Beneficial interest obtained in exchange for s...</td>\n",
" <td>184000000.0</td>\n",
" </tr>\n",
" <tr>\n",
" <th>97</th>\n",
" <td>Beneficial interest obtained in exchange for s...</td>\n",
" <td>153000000.0</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>187 rows × 2 columns</p>\n",
"</div>\n",
" <div class=\"colab-df-buttons\">\n",
"\n",
" <div class=\"colab-df-container\">\n",
" <button class=\"colab-df-convert\" onclick=\"convertToInteractive('df-c235a45b-26ba-4f52-ba3d-eb616512819a')\"\n",
" title=\"Convert this dataframe to an interactive table.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\" viewBox=\"0 -960 960 960\">\n",
" <path d=\"M120-120v-720h720v720H120Zm60-500h600v-160H180v160Zm220 220h160v-160H400v160Zm0 220h160v-160H400v160ZM180-400h160v-160H180v160Zm440 0h160v-160H620v160ZM180-180h160v-160H180v160Zm440 0h160v-160H620v160Z\"/>\n",
" </svg>\n",
" </button>\n",
"\n",
" <style>\n",
" .colab-df-container {\n",
" display:flex;\n",
" gap: 12px;\n",
" }\n",
"\n",
" .colab-df-convert {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-convert:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" .colab-df-buttons div {\n",
" margin-bottom: 4px;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-convert:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
"\n",
" <script>\n",
" const buttonEl =\n",
" document.querySelector('#df-c235a45b-26ba-4f52-ba3d-eb616512819a button.colab-df-convert');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" async function convertToInteractive(key) {\n",
" const element = document.querySelector('#df-c235a45b-26ba-4f52-ba3d-eb616512819a');\n",
" const dataTable =\n",
" await google.colab.kernel.invokeFunction('convertToInteractive',\n",
" [key], {});\n",
" if (!dataTable) return;\n",
"\n",
" const docLinkHtml = 'Like what you see? Visit the ' +\n",
" '<a target=\"_blank\" href=https://colab.research.google.com/notebooks/data_table.ipynb>data table notebook</a>'\n",
" + ' to learn more about interactive tables.';\n",
" element.innerHTML = '';\n",
" dataTable['output_type'] = 'display_data';\n",
" await google.colab.output.renderOutput(dataTable, element);\n",
" const docLink = document.createElement('div');\n",
" docLink.innerHTML = docLinkHtml;\n",
" element.appendChild(docLink);\n",
" }\n",
" </script>\n",
" </div>\n",
"\n",
"\n",
"<div id=\"df-53b9b84b-c683-480c-adf8-aa868e408227\">\n",
" <button class=\"colab-df-quickchart\" onclick=\"quickchart('df-53b9b84b-c683-480c-adf8-aa868e408227')\"\n",
" title=\"Suggest charts\"\n",
" style=\"display:none;\">\n",
"\n",
"<svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <g>\n",
" <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zM9 17H7v-7h2v7zm4 0h-2V7h2v10zm4 0h-2v-4h2v4z\"/>\n",
" </g>\n",
"</svg>\n",
" </button>\n",
"\n",
"<style>\n",
" .colab-df-quickchart {\n",
" --bg-color: #E8F0FE;\n",
" --fill-color: #1967D2;\n",
" --hover-bg-color: #E2EBFA;\n",
" --hover-fill-color: #174EA6;\n",
" --disabled-fill-color: #AAA;\n",
" --disabled-bg-color: #DDD;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-quickchart {\n",
" --bg-color: #3B4455;\n",
" --fill-color: #D2E3FC;\n",
" --hover-bg-color: #434B5C;\n",
" --hover-fill-color: #FFFFFF;\n",
" --disabled-bg-color: #3B4455;\n",
" --disabled-fill-color: #666;\n",
" }\n",
"\n",
" .colab-df-quickchart {\n",
" background-color: var(--bg-color);\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: var(--fill-color);\n",
" height: 32px;\n",
" padding: 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-quickchart:hover {\n",
" background-color: var(--hover-bg-color);\n",
" box-shadow: 0 1px 2px rgba(60, 64, 67, 0.3), 0 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: var(--button-hover-fill-color);\n",
" }\n",
"\n",
" .colab-df-quickchart-complete:disabled,\n",
" .colab-df-quickchart-complete:disabled:hover {\n",
" background-color: var(--disabled-bg-color);\n",
" fill: var(--disabled-fill-color);\n",
" box-shadow: none;\n",
" }\n",
"\n",
" .colab-df-spinner {\n",
" border: 2px solid var(--fill-color);\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" animation:\n",
" spin 1s steps(1) infinite;\n",
" }\n",
"\n",
" @keyframes spin {\n",
" 0% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" border-left-color: var(--fill-color);\n",
" }\n",
" 20% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 30% {\n",
" border-color: transparent;\n",
" border-left-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 40% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-top-color: var(--fill-color);\n",
" }\n",
" 60% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" }\n",
" 80% {\n",
" border-color: transparent;\n",
" border-right-color: var(--fill-color);\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" 90% {\n",
" border-color: transparent;\n",
" border-bottom-color: var(--fill-color);\n",
" }\n",
" }\n",
"</style>\n",
"\n",
" <script>\n",
" async function quickchart(key) {\n",
" const quickchartButtonEl =\n",
" document.querySelector('#' + key + ' button');\n",
" quickchartButtonEl.disabled = true; // To prevent multiple clicks.\n",
" quickchartButtonEl.classList.add('colab-df-spinner');\n",
" try {\n",
" const charts = await google.colab.kernel.invokeFunction(\n",
" 'suggestCharts', [key], {});\n",
" } catch (error) {\n",
" console.error('Error during call to suggestCharts:', error);\n",
" }\n",
" quickchartButtonEl.classList.remove('colab-df-spinner');\n",
" quickchartButtonEl.classList.add('colab-df-quickchart-complete');\n",
" }\n",
" (() => {\n",
" let quickchartButtonEl =\n",
" document.querySelector('#df-53b9b84b-c683-480c-adf8-aa868e408227 button');\n",
" quickchartButtonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
" })();\n",
" </script>\n",
"</div>\n",
"\n",
" <div id=\"id_950e46fc-b424-4ac5-b2a6-532995435849\">\n",
" <style>\n",
" .colab-df-generate {\n",
" background-color: #E8F0FE;\n",
" border: none;\n",
" border-radius: 50%;\n",
" cursor: pointer;\n",
" display: none;\n",
" fill: #1967D2;\n",
" height: 32px;\n",
" padding: 0 0 0 0;\n",
" width: 32px;\n",
" }\n",
"\n",
" .colab-df-generate:hover {\n",
" background-color: #E2EBFA;\n",
" box-shadow: 0px 1px 2px rgba(60, 64, 67, 0.3), 0px 1px 3px 1px rgba(60, 64, 67, 0.15);\n",
" fill: #174EA6;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate {\n",
" background-color: #3B4455;\n",
" fill: #D2E3FC;\n",
" }\n",
"\n",
" [theme=dark] .colab-df-generate:hover {\n",
" background-color: #434B5C;\n",
" box-shadow: 0px 1px 3px 1px rgba(0, 0, 0, 0.15);\n",
" filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.3));\n",
" fill: #FFFFFF;\n",
" }\n",
" </style>\n",
" <button class=\"colab-df-generate\" onclick=\"generateWithVariable('cash_flow')\"\n",
" title=\"Generate code using this dataframe.\"\n",
" style=\"display:none;\">\n",
"\n",
" <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"24px\"viewBox=\"0 0 24 24\"\n",
" width=\"24px\">\n",
" <path d=\"M7,19H8.4L18.45,9,17,7.55,7,17.6ZM5,21V16.75L18.45,3.32a2,2,0,0,1,2.83,0l1.4,1.43a1.91,1.91,0,0,1,.58,1.4,1.91,1.91,0,0,1-.58,1.4L9.25,21ZM18.45,9,17,7.55Zm-12,3A5.31,5.31,0,0,0,4.9,8.1,5.31,5.31,0,0,0,1,6.5,5.31,5.31,0,0,0,4.9,4.9,5.31,5.31,0,0,0,6.5,1,5.31,5.31,0,0,0,8.1,4.9,5.31,5.31,0,0,0,12,6.5,5.46,5.46,0,0,0,6.5,12Z\"/>\n",
" </svg>\n",
" </button>\n",
" <script>\n",
" (() => {\n",
" const buttonEl =\n",
" document.querySelector('#id_950e46fc-b424-4ac5-b2a6-532995435849 button.colab-df-generate');\n",
" buttonEl.style.display =\n",
" google.colab.kernel.accessAllowed ? 'block' : 'none';\n",
"\n",
" buttonEl.onclick = () => {\n",
" google.colab.notebook.generateWithVariable('cash_flow');\n",
" }\n",
" })();\n",
" </script>\n",
" </div>\n",
"\n",
" </div>\n",
" </div>\n"
],
"application/vnd.google.colaboratory.intrinsic+json": {
"type": "dataframe",
"variable_name": "cash_flow",
"summary": "{\n \"name\": \"cash_flow\",\n \"rows\": 187,\n \"fields\": [\n {\n \"column\": \"Line Item\",\n \"properties\": {\n \"dtype\": \"category\",\n \"num_unique_values\": 42,\n \"samples\": [\n \"Net cash flows from (used for) investing activities\",\n \"Gas stored underground\",\n \"Adjustments to reconcile net income to net cash flows from operating activities:\"\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n },\n {\n \"column\": \"Value\",\n \"properties\": {\n \"dtype\": \"number\",\n \"std\": 143750659.50977194,\n \"min\": -532000000.0,\n \"max\": 862000000.0,\n \"num_unique_values\": 119,\n \"samples\": [\n 417000000.0,\n -318000000.0,\n 63000000.0\n ],\n \"semantic_type\": \"\",\n \"description\": \"\"\n }\n }\n ]\n}"
}
},
"metadata": {}
},
{
"output_type": "stream",
"name": "stdout",
"text": [
"Financial statements exported as CSV files.\n"
]
}
]
}
]
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment