From 521734c78cae7a6ab3cd5e480e4b94f90b0405d5 Mon Sep 17 00:00:00 2001 From: Pavanmahaveer Singara <79128839+Pavanmahaveer7@users.noreply.github.com> Date: Thu, 11 Jan 2024 22:06:47 -0600 Subject: [PATCH] Add files via upload Data Analysis anf Visualization for Energy sector data in UK. --- ENERGY_UK.ipynb | 86270 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 86270 insertions(+) create mode 100644 ENERGY_UK.ipynb diff --git a/ENERGY_UK.ipynb b/ENERGY_UK.ipynb new file mode 100644 index 0000000..6a3a137 --- /dev/null +++ b/ENERGY_UK.ipynb @@ -0,0 +1,86270 @@ +{ + "nbformat": 4, + "nbformat_minor": 0, + "metadata": { + "colab": { + "provenance": [] + }, + "kernelspec": { + "name": "python3", + "display_name": "Python 3" + }, + "language_info": { + "name": "python" + }, + "widgets": { + "application/vnd.jupyter.widget-state+json": { + "c03fb9a0e5bf4fcf8db99bdc3726a526": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HBoxModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HBoxModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HBoxView", + "box_style": "", + "children": [ + "IPY_MODEL_1b5980a30cde491da4ca720073a3dbce", + "IPY_MODEL_39955cb2083f411ea68e65e854cdb14f", + "IPY_MODEL_740331d2ca7b4a74b5f6b23c6278e385" + ], + "layout": "IPY_MODEL_5d2bf5fbb06d4c76b695207e72be2556" + } + }, + "1b5980a30cde491da4ca720073a3dbce": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_507b348031344bee84d9c69cc3246cb6", + "placeholder": "​", + "style": "IPY_MODEL_0cb8ea7ce80e4f73a2ce4ad56f2a9523", + "value": "Feature: electrical_capacity " + } + }, + "39955cb2083f411ea68e65e854cdb14f": { + "model_module": "@jupyter-widgets/controls", + "model_name": "FloatProgressModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "FloatProgressModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "ProgressView", + "bar_style": "danger", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_746727bd304c46d3aea3c7b2bde1352c", + "max": 26, + "min": 0, + "orientation": "horizontal", + "style": "IPY_MODEL_2d8c645d8de6413582484b784b8c5077", + "value": 1 + } + }, + "740331d2ca7b4a74b5f6b23c6278e385": { + "model_module": "@jupyter-widgets/controls", + "model_name": "HTMLModel", + "model_module_version": "1.5.0", + "state": { + "_dom_classes": [], + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "HTMLModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/controls", + "_view_module_version": "1.5.0", + "_view_name": "HTMLView", + "description": "", + "description_tooltip": null, + "layout": "IPY_MODEL_74e9cff5eb0348829c554ab78a701424", + "placeholder": "​", + "style": "IPY_MODEL_f16f8f1f8df940c0932707b00d7f7a38", + "value": " [ 4%] 09:51 -> (4:06:30 left)" + } + }, + "5d2bf5fbb06d4c76b695207e72be2556": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": "inline-flex", + "flex": null, + "flex_flow": "row wrap", + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": "100%" + } + }, + "507b348031344bee84d9c69cc3246cb6": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "0cb8ea7ce80e4f73a2ce4ad56f2a9523": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + }, + "746727bd304c46d3aea3c7b2bde1352c": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": "2", + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "2d8c645d8de6413582484b784b8c5077": { + "model_module": "@jupyter-widgets/controls", + "model_name": "ProgressStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "ProgressStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "bar_color": null, + "description_width": "" + } + }, + "74e9cff5eb0348829c554ab78a701424": { + "model_module": "@jupyter-widgets/base", + "model_name": "LayoutModel", + "model_module_version": "1.2.0", + "state": { + "_model_module": "@jupyter-widgets/base", + "_model_module_version": "1.2.0", + "_model_name": "LayoutModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "LayoutView", + "align_content": null, + "align_items": null, + "align_self": null, + "border": null, + "bottom": null, + "display": null, + "flex": null, + "flex_flow": null, + "grid_area": null, + "grid_auto_columns": null, + "grid_auto_flow": null, + "grid_auto_rows": null, + "grid_column": null, + "grid_gap": null, + "grid_row": null, + "grid_template_areas": null, + "grid_template_columns": null, + "grid_template_rows": null, + "height": null, + "justify_content": null, + "justify_items": null, + "left": null, + "margin": null, + "max_height": null, + "max_width": null, + "min_height": null, + "min_width": null, + "object_fit": null, + "object_position": null, + "order": null, + "overflow": null, + "overflow_x": null, + "overflow_y": null, + "padding": null, + "right": null, + "top": null, + "visibility": null, + "width": null + } + }, + "f16f8f1f8df940c0932707b00d7f7a38": { + "model_module": "@jupyter-widgets/controls", + "model_name": "DescriptionStyleModel", + "model_module_version": "1.5.0", + "state": { + "_model_module": "@jupyter-widgets/controls", + "_model_module_version": "1.5.0", + "_model_name": "DescriptionStyleModel", + "_view_count": null, + "_view_module": "@jupyter-widgets/base", + "_view_module_version": "1.2.0", + "_view_name": "StyleView", + "description_width": "" + } + } + } + } + }, + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "z5C4Eu78olZe", + "outputId": "62f728fe-c299-4d62-e8f0-14d2b08a5cdb" + }, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Collecting sweetviz\n", + " Downloading sweetviz-2.3.1-py3-none-any.whl (15.1 MB)\n", + "\u001b[2K \u001b[90m━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\u001b[0m \u001b[32m15.1/15.1 MB\u001b[0m \u001b[31m28.6 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n", + "\u001b[?25hRequirement already satisfied: pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.5.3)\n", + "Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.23.5)\n", + "Requirement already satisfied: matplotlib>=3.1.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.7.1)\n", + "Requirement already satisfied: tqdm>=4.43.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (4.66.1)\n", + "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.11.4)\n", + "Requirement already satisfied: jinja2>=2.11.1 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.1.2)\n", + "Requirement already satisfied: importlib-resources>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (6.1.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=2.11.1->sweetviz) (2.1.3)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (4.47.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (23.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (9.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3->sweetviz) (2023.3.post1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.1.3->sweetviz) (1.16.0)\n", + "Installing collected packages: sweetviz\n", + "Successfully installed sweetviz-2.3.1\n" + ] + } + ], + "source": [ + "!pip install sweetviz" + ] + }, + { + "cell_type": "code", + "source": [ + "import sweetviz as sv\n", + "import pandas as pd\n", + "\n", + "\n", + "# Load the dataset\n", + "data = pd.read_csv(r'/content/renewable_power_plants_UK.csv',delimiter='\\t')\n", + "\n", + "# Analyze the dataset\n", + "report = sv.analyze(data)\n", + "\n", + "# Generate the report\n", + "report.show_html('energy_data_report.html')\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 304 + }, + "id": "QMLsjFViopiP", + "outputId": "85456562-88ad-4a1b-f4a7-f90c81c415df" + }, + "execution_count": 7, + "outputs": [ + { + "output_type": "error", + "ename": "ParserError", + "evalue": "Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.\n", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mParserError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 5\u001b[0m \u001b[0;31m# Load the dataset\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 6\u001b[0;31m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_csv\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mr'/content/renewable_power_plants_UK.csv'\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mdelimiter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'\\t'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 7\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 8\u001b[0m \u001b[0;31m# Analyze the dataset\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/util/_decorators.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 209\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0mkwargs\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mnew_arg_name\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mnew_arg_value\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 211\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 212\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 213\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mcast\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mF\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mwrapper\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/util/_decorators.py\u001b[0m in \u001b[0;36mwrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 329\u001b[0m \u001b[0mstacklevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mfind_stack_level\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 330\u001b[0m )\n\u001b[0;32m--> 331\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mfunc\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 332\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 333\u001b[0m \u001b[0;31m# error: \"Callable[[VarArg(Any), KwArg(Any)], Any]\" has no\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36mread_csv\u001b[0;34m(filepath_or_buffer, sep, delimiter, header, names, index_col, usecols, squeeze, prefix, mangle_dupe_cols, dtype, engine, converters, true_values, false_values, skipinitialspace, skiprows, skipfooter, nrows, na_values, keep_default_na, na_filter, verbose, skip_blank_lines, parse_dates, infer_datetime_format, keep_date_col, date_parser, dayfirst, cache_dates, iterator, chunksize, compression, thousands, decimal, lineterminator, quotechar, quoting, doublequote, escapechar, comment, encoding, encoding_errors, dialect, error_bad_lines, warn_bad_lines, on_bad_lines, delim_whitespace, low_memory, memory_map, float_precision, storage_options)\u001b[0m\n\u001b[1;32m 948\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mkwds_defaults\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 949\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 950\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0m_read\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfilepath_or_buffer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkwds\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 951\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 952\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36m_read\u001b[0;34m(filepath_or_buffer, kwds)\u001b[0m\n\u001b[1;32m 609\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 610\u001b[0m \u001b[0;32mwith\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 611\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mparser\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 612\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 613\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/readers.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m 1776\u001b[0m \u001b[0mcolumns\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1777\u001b[0m \u001b[0mcol_dict\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1778\u001b[0;31m \u001b[0;34m)\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_engine\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread\u001b[0m\u001b[0;34m(\u001b[0m \u001b[0;31m# type: ignore[attr-defined]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1779\u001b[0m \u001b[0mnrows\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 1780\u001b[0m )\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/io/parsers/c_parser_wrapper.py\u001b[0m in \u001b[0;36mread\u001b[0;34m(self, nrows)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlow_memory\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mchunks\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_reader\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_low_memory\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnrows\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;31m# destructive to chunks\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0mdata\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_concatenate_chunks\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mchunks\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader.read_low_memory\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._read_rows\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.TextReader._tokenize_rows\u001b[0;34m()\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/_libs/parsers.pyx\u001b[0m in \u001b[0;36mpandas._libs.parsers.raise_parser_error\u001b[0;34m()\u001b[0m\n", + "\u001b[0;31mParserError\u001b[0m: Error tokenizing data. C error: Buffer overflow caught - possible malformed input file.\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "chunk_size = 3000 # Adjust as needed\n", + "chunks = pd.read_csv('/content/renewable_power_plants_UK.csv', chunksize=chunk_size)\n", + "data = pd.concat(chunks)\n" + ], + "metadata": { + "id": "_mt_8e43qDeH" + }, + "execution_count": 10, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data.head(30)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 1000 + }, + "id": "cJnTf3-IqO7V", + "outputId": "ca506951-47be-4426-9135-772a883b97cc" + }, + "execution_count": 12, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " electrical_capacity energy_source_level_1 energy_source_level_2 \\\n", + "0 9.9 Renewable energy Hydro \n", + "1 19.5 Renewable energy Hydro \n", + "2 65.0 Renewable energy Hydro \n", + "3 32.0 Renewable energy Hydro \n", + "4 15.0 Renewable energy Hydro \n", + "5 8.0 Renewable energy Hydro \n", + "6 1.9 Renewable energy Hydro \n", + "7 2.4 Renewable energy Hydro \n", + "8 6.4 Renewable energy Hydro \n", + "9 15.0 Renewable energy Hydro \n", + "10 2.4 Renewable energy Hydro \n", + "11 20.0 Renewable energy Hydro \n", + "12 3.0 Renewable energy Hydro \n", + "13 20.0 Renewable energy Hydro \n", + "14 2.0 Renewable energy Hydro \n", + "15 36.0 Renewable energy Hydro \n", + "16 5.0 Renewable energy Hydro \n", + "17 4.0 Renewable energy Hydro \n", + "18 4.0 Renewable energy Hydro \n", + "19 2.5 Renewable energy Hydro \n", + "20 3.5 Renewable energy Hydro \n", + "21 10.0 Renewable energy Hydro \n", + "22 18.0 Renewable energy Hydro \n", + "23 3.0 Renewable energy Hydro \n", + "24 6.0 Renewable energy Hydro \n", + "25 360.0 Renewable energy Hydro \n", + "26 20.0 Renewable energy Hydro \n", + "27 20.0 Renewable energy Hydro \n", + "28 2.2 Renewable energy Hydro \n", + "29 2.0 Renewable energy Hydro \n", + "\n", + " energy_source_level_3 technology data_source \\\n", + "0 NaN Other or unspecified technology BEIS \n", + "1 NaN Other or unspecified technology BEIS \n", + "2 NaN Other or unspecified technology BEIS \n", + "3 NaN Other or unspecified technology BEIS \n", + "4 NaN Other or unspecified technology BEIS \n", + "5 NaN Other or unspecified technology BEIS \n", + "6 NaN Other or unspecified technology BEIS \n", + "7 NaN Other or unspecified technology BEIS \n", + "8 NaN Other or unspecified technology BEIS \n", + "9 NaN Other or unspecified technology BEIS \n", + "10 NaN Other or unspecified technology BEIS \n", + "11 NaN Other or unspecified technology BEIS \n", + "12 NaN Other or unspecified technology BEIS \n", + "13 NaN Other or unspecified technology BEIS \n", + "14 NaN Other or unspecified technology BEIS \n", + "15 NaN Other or unspecified technology BEIS \n", + "16 NaN Other or unspecified technology BEIS \n", + "17 NaN Other or unspecified technology BEIS \n", + "18 NaN Other or unspecified technology BEIS \n", + "19 NaN Other or unspecified technology BEIS \n", + "20 NaN Other or unspecified technology BEIS \n", + "21 NaN Other or unspecified technology BEIS \n", + "22 NaN Other or unspecified technology BEIS \n", + "23 NaN Other or unspecified technology BEIS \n", + "24 NaN Other or unspecified technology BEIS \n", + "25 NaN Pumped storage BEIS \n", + "26 NaN Other or unspecified technology BEIS \n", + "27 NaN Other or unspecified technology BEIS \n", + "28 NaN Other or unspecified technology BEIS \n", + "29 NaN Other or unspecified technology BEIS \n", + "\n", + " nuts_1_region nuts_2_region nuts_3_region lon ... country \\\n", + "0 UKL UKL1 UKL12 -4.033500 ... Wales \n", + "1 UKM UKM6 UKM63 -4.963406 ... Scotland \n", + "2 UKM UKM6 UKM63 -5.072590 ... Scotland \n", + "3 UKL UKL1 UKL13 -3.842614 ... Wales \n", + "4 UKM UKM7 UKM77 -3.740559 ... Scotland \n", + "5 UKM UKM6 UKM63 -5.119886 ... Scotland \n", + "6 UKM UKM7 UKM77 -3.839252 ... Scotland \n", + "7 UKM UKM6 UKM63 -5.786985 ... Scotland \n", + "8 UKM UKM7 UKM77 -4.508513 ... Scotland \n", + "9 UKM UKM6 UKM61 -4.598363 ... Scotland \n", + "10 UKM UKM6 UKM62 -4.944874 ... Scotland \n", + "11 UKM UKM6 UKM62 -4.931970 ... Scotland \n", + "12 UKM UKM6 UKM61 -4.916043 ... Scotland \n", + "13 UKM UKM6 UKM63 -4.774040 ... Scotland \n", + "14 UKM UKM6 UKM63 -5.489672 ... Scotland \n", + "15 UKM UKM6 UKM62 -4.721325 ... Scotland \n", + "16 UKM UKM6 UKM62 -4.229966 ... Scotland \n", + "17 UKM UKM7 UKM77 -4.517449 ... Scotland \n", + "18 UKM UKM7 UKM77 -4.041121 ... Scotland \n", + "19 UKM UKM6 UKM62 -4.210955 ... Scotland \n", + "20 UKM UKM6 UKM61 -4.414560 ... Scotland \n", + "21 UKM UKM6 UKM61 -4.583249 ... Scotland \n", + "22 UKM UKM6 UKM61 -4.558524 ... Scotland \n", + "23 UKM UKM7 UKM77 -3.997539 ... Scotland \n", + "24 UKM UKM6 UKM63 -5.329354 ... Scotland \n", + "25 UKL UKL1 UKL12 -3.968890 ... Wales \n", + "26 UKM UKM6 UKM62 -4.545321 ... Scotland \n", + "27 UKM UKM6 UKM62 -4.512122 ... Scotland \n", + "28 UKM UKM7 UKM77 -4.371959 ... Scotland \n", + "29 UKM UKM6 UKM63 -4.985167 ... Scotland \n", + "\n", + " commissioning_date solar_mounting_type chp capacity_individual_turbine \\\n", + "0 1906-01-01 NaN NaN NaN \n", + "1 1909-01-01 NaN NaN NaN \n", + "2 1929-01-01 NaN NaN NaN \n", + "3 1938-01-01 NaN NaN NaN \n", + "4 1950-01-01 NaN NaN NaN \n", + "5 1951-01-01 NaN NaN NaN \n", + "6 1952-01-01 NaN NaN NaN \n", + "7 1952-01-01 NaN NaN NaN \n", + "8 1953-01-01 NaN NaN NaN \n", + "9 1954-01-04 NaN NaN NaN \n", + "10 1955-01-01 NaN NaN NaN \n", + "11 1956-01-01 NaN NaN NaN \n", + "12 1956-01-01 NaN NaN NaN \n", + "13 1956-01-01 NaN NaN NaN \n", + "14 1956-01-01 NaN NaN NaN \n", + "15 1957-01-01 NaN NaN NaN \n", + "16 1957-01-01 NaN NaN NaN \n", + "17 1958-01-01 NaN NaN NaN \n", + "18 1958-01-01 NaN NaN NaN \n", + "19 1959-01-01 NaN NaN NaN \n", + "20 1959-01-01 NaN NaN NaN \n", + "21 1959-01-01 NaN NaN NaN \n", + "22 1959-01-01 NaN NaN NaN \n", + "23 1961-01-01 NaN NaN NaN \n", + "24 1961-01-01 NaN NaN NaN \n", + "25 1961-01-01 NaN NaN NaN \n", + "26 1962-01-01 NaN NaN NaN \n", + "27 1962-01-01 NaN NaN NaN \n", + "28 1962-01-01 NaN NaN NaN \n", + "29 1962-01-01 NaN NaN NaN \n", + "\n", + " number_of_turbines site_name uk_beis_id \\\n", + "0 NaN Cwm Dyli 4882.0 \n", + "1 NaN Kinlochleven Hydro Power Station 391.0 \n", + "2 NaN Lochaber 6601.0 \n", + "3 NaN Dolgarrog 4881.0 \n", + "4 NaN Pitlochry 394.0 \n", + "5 NaN Striven 397.0 \n", + "6 NaN Turret water treatment works 419.0 \n", + "7 NaN Lussa 466.0 \n", + "8 NaN Gaur 393.0 \n", + "9 NaN Tor Achilty 401.0 \n", + "10 NaN Mullardoch Tunnel 467.0 \n", + "11 NaN Ceannacroc 402.0 \n", + "12 NaN Achanalt 468.0 \n", + "13 NaN Invergarry 404.0 \n", + "14 NaN Kilmelfort 461.0 \n", + "15 NaN Great Glen Scheme 387.0 \n", + "16 NaN Sron Mor 396.0 \n", + "17 NaN Lubreoch 464.0 \n", + "18 NaN Dalchonzie 462.0 \n", + "19 NaN Cuaich 471.0 \n", + "20 NaN Lairg 470.0 \n", + "21 NaN Cassley 406.0 \n", + "22 NaN Orrin 400.0 \n", + "23 NaN Lednock 463.0 \n", + "24 NaN Loch Gair 395.0 \n", + "25 NaN Ffestiniog 6840.0 \n", + "26 NaN Aigas 398.0 \n", + "27 NaN Kilmorack 399.0 \n", + "28 NaN Loch Ericht 465.0 \n", + "29 NaN Mucomir 469.0 \n", + "\n", + " operator comment \n", + "0 RWE NaN \n", + "1 Hydro Plan (on behalf of Alcan) NaN \n", + "2 GFG Alliance NaN \n", + "3 RWE NaN \n", + "4 Scottish and Southern Energy (SSE) NaN \n", + "5 Scottish and Southern Energy (SSE) NaN \n", + "6 NaN NaN \n", + "7 Scottish and Southern Energy (SSE) NaN \n", + "8 Scottish and Southern Energy (SSE) NaN \n", + "9 Scottish and Southern Energy (SSE) NaN \n", + "10 Scottish and Southern Energy (SSE) NaN \n", + "11 Scottish and Southern Energy (SSE) NaN \n", + "12 Scottish and Southern Energy (SSE) NaN \n", + "13 Scottish and Southern Energy (SSE) NaN \n", + "14 Scottish and Southern Energy (SSE) NaN \n", + "15 Scottish and Southern Energy (SSE) NaN \n", + "16 Scottish and Southern Energy (SSE) NaN \n", + "17 Scottish and Southern Energy (SSE) NaN \n", + "18 Scottish and Southern Energy (SSE) NaN \n", + "19 Scottish and Southern Energy (SSE) NaN \n", + "20 Scottish and Southern Energy (SSE) NaN \n", + "21 Scottish and Southern Energy (SSE) NaN \n", + "22 Scottish and Southern Energy (SSE) NaN \n", + "23 Scottish and Southern Energy (SSE) NaN \n", + "24 Scottish and Southern Energy (SSE) NaN \n", + "25 First Hydro Company NaN \n", + "26 Scottish and Southern Energy (SSE) NaN \n", + "27 Scottish and Southern Energy (SSE) NaN \n", + "28 Scottish and Southern Energy (SSE) NaN \n", + "29 Scottish and Southern Energy (SSE) NaN \n", + "\n", + "[30 rows x 25 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
electrical_capacityenergy_source_level_1energy_source_level_2energy_source_level_3technologydata_sourcenuts_1_regionnuts_2_regionnuts_3_regionlon...countrycommissioning_datesolar_mounting_typechpcapacity_individual_turbinenumber_of_turbinessite_nameuk_beis_idoperatorcomment
09.9Renewable energyHydroNaNOther or unspecified technologyBEISUKLUKL1UKL12-4.033500...Wales1906-01-01NaNNaNNaNNaNCwm Dyli4882.0RWENaN
119.5Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-4.963406...Scotland1909-01-01NaNNaNNaNNaNKinlochleven Hydro Power Station391.0Hydro Plan (on behalf of Alcan)NaN
265.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.072590...Scotland1929-01-01NaNNaNNaNNaNLochaber6601.0GFG AllianceNaN
332.0Renewable energyHydroNaNOther or unspecified technologyBEISUKLUKL1UKL13-3.842614...Wales1938-01-01NaNNaNNaNNaNDolgarrog4881.0RWENaN
415.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-3.740559...Scotland1950-01-01NaNNaNNaNNaNPitlochry394.0Scottish and Southern Energy (SSE)NaN
58.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.119886...Scotland1951-01-01NaNNaNNaNNaNStriven397.0Scottish and Southern Energy (SSE)NaN
61.9Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-3.839252...Scotland1952-01-01NaNNaNNaNNaNTurret water treatment works419.0NaNNaN
72.4Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.786985...Scotland1952-01-01NaNNaNNaNNaNLussa466.0Scottish and Southern Energy (SSE)NaN
86.4Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-4.508513...Scotland1953-01-01NaNNaNNaNNaNGaur393.0Scottish and Southern Energy (SSE)NaN
915.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM61-4.598363...Scotland1954-01-04NaNNaNNaNNaNTor Achilty401.0Scottish and Southern Energy (SSE)NaN
102.4Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.944874...Scotland1955-01-01NaNNaNNaNNaNMullardoch Tunnel467.0Scottish and Southern Energy (SSE)NaN
1120.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.931970...Scotland1956-01-01NaNNaNNaNNaNCeannacroc402.0Scottish and Southern Energy (SSE)NaN
123.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM61-4.916043...Scotland1956-01-01NaNNaNNaNNaNAchanalt468.0Scottish and Southern Energy (SSE)NaN
1320.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-4.774040...Scotland1956-01-01NaNNaNNaNNaNInvergarry404.0Scottish and Southern Energy (SSE)NaN
142.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.489672...Scotland1956-01-01NaNNaNNaNNaNKilmelfort461.0Scottish and Southern Energy (SSE)NaN
1536.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.721325...Scotland1957-01-01NaNNaNNaNNaNGreat Glen Scheme387.0Scottish and Southern Energy (SSE)NaN
165.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.229966...Scotland1957-01-01NaNNaNNaNNaNSron Mor396.0Scottish and Southern Energy (SSE)NaN
174.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-4.517449...Scotland1958-01-01NaNNaNNaNNaNLubreoch464.0Scottish and Southern Energy (SSE)NaN
184.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-4.041121...Scotland1958-01-01NaNNaNNaNNaNDalchonzie462.0Scottish and Southern Energy (SSE)NaN
192.5Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.210955...Scotland1959-01-01NaNNaNNaNNaNCuaich471.0Scottish and Southern Energy (SSE)NaN
203.5Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM61-4.414560...Scotland1959-01-01NaNNaNNaNNaNLairg470.0Scottish and Southern Energy (SSE)NaN
2110.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM61-4.583249...Scotland1959-01-01NaNNaNNaNNaNCassley406.0Scottish and Southern Energy (SSE)NaN
2218.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM61-4.558524...Scotland1959-01-01NaNNaNNaNNaNOrrin400.0Scottish and Southern Energy (SSE)NaN
233.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-3.997539...Scotland1961-01-01NaNNaNNaNNaNLednock463.0Scottish and Southern Energy (SSE)NaN
246.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.329354...Scotland1961-01-01NaNNaNNaNNaNLoch Gair395.0Scottish and Southern Energy (SSE)NaN
25360.0Renewable energyHydroNaNPumped storageBEISUKLUKL1UKL12-3.968890...Wales1961-01-01NaNNaNNaNNaNFfestiniog6840.0First Hydro CompanyNaN
2620.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.545321...Scotland1962-01-01NaNNaNNaNNaNAigas398.0Scottish and Southern Energy (SSE)NaN
2720.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM62-4.512122...Scotland1962-01-01NaNNaNNaNNaNKilmorack399.0Scottish and Southern Energy (SSE)NaN
282.2Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-4.371959...Scotland1962-01-01NaNNaNNaNNaNLoch Ericht465.0Scottish and Southern Energy (SSE)NaN
292.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-4.985167...Scotland1962-01-01NaNNaNNaNNaNMucomir469.0Scottish and Southern Energy (SSE)NaN
\n", + "

30 rows × 25 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 12 + } + ] + }, + { + "cell_type": "code", + "source": [ + "!pip install sweetviz" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "T-fTwNn5qQ7F", + "outputId": "1e09794f-bd4b-4573-a3f6-000898d830e3" + }, + "execution_count": 13, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: sweetviz in /usr/local/lib/python3.10/dist-packages (2.3.1)\n", + "Requirement already satisfied: pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.5.3)\n", + "Requirement already satisfied: numpy>=1.16.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.23.5)\n", + "Requirement already satisfied: matplotlib>=3.1.3 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.7.1)\n", + "Requirement already satisfied: tqdm>=4.43.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (4.66.1)\n", + "Requirement already satisfied: scipy>=1.3.2 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (1.11.4)\n", + "Requirement already satisfied: jinja2>=2.11.1 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (3.1.2)\n", + "Requirement already satisfied: importlib-resources>=1.2.0 in /usr/local/lib/python3.10/dist-packages (from sweetviz) (6.1.1)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=2.11.1->sweetviz) (2.1.3)\n", + "Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.2.0)\n", + "Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (0.12.1)\n", + "Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (4.47.0)\n", + "Requirement already satisfied: kiwisolver>=1.0.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (1.4.5)\n", + "Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (23.2)\n", + "Requirement already satisfied: pillow>=6.2.0 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (9.4.0)\n", + "Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (3.1.1)\n", + "Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.10/dist-packages (from matplotlib>=3.1.3->sweetviz) (2.8.2)\n", + "Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.10/dist-packages (from pandas!=1.0.0,!=1.0.1,!=1.0.2,>=0.25.3->sweetviz) (2023.3.post1)\n", + "Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.10/dist-packages (from python-dateutil>=2.7->matplotlib>=3.1.3->sweetviz) (1.16.0)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import sweetviz as sv\n", + "\n", + "# Generate the report\n", + "report = sv.analyze(data)\n", + "\n", + "# Display the report in a Jupyter Notebook or save it as an HTML file\n", + "report.show_html('data_analysis_report.html')\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 666, + "referenced_widgets": [ + "c03fb9a0e5bf4fcf8db99bdc3726a526", + "1b5980a30cde491da4ca720073a3dbce", + "39955cb2083f411ea68e65e854cdb14f", + "740331d2ca7b4a74b5f6b23c6278e385", + "5d2bf5fbb06d4c76b695207e72be2556", + "507b348031344bee84d9c69cc3246cb6", + "0cb8ea7ce80e4f73a2ce4ad56f2a9523", + "746727bd304c46d3aea3c7b2bde1352c", + "2d8c645d8de6413582484b784b8c5077", + "74e9cff5eb0348829c554ab78a701424", + "f16f8f1f8df940c0932707b00d7f7a38" + ] + }, + "id": "vItwqy-kq9Oz", + "outputId": "f3472d09-fb89-43f1-d95d-8c12bd369070" + }, + "execution_count": 14, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + " | | [ 0%] 00:00 -> (? left)" + ], + "application/vnd.jupyter.widget-view+json": { + "version_major": 2, + "version_minor": 0, + "model_id": "c03fb9a0e5bf4fcf8db99bdc3726a526" + } + }, + "metadata": {} + }, + { + "output_type": "error", + "ename": "TypeError", + "evalue": "\n\nColumn [electrical_capacity] has a 'mixed' inferred_type (as determined by Pandas).\nThis is is not currently supported; column types should not contain mixed data.\ne.g. only floats or strings, but not a combination.\n\nPOSSIBLE RESOLUTIONS:\nBEST -> Make sure series [electrical_capacity] only contains a certain type of data (numerical OR string).\nOR -> Convert series [electrical_capacity] to a string (if makes sense) so it will be picked up as CATEGORICAL or TEXT.\n One way to do this is:\n df['electrical_capacity'] = df['electrical_capacity'].astype(str)\nOR -> Convert series [electrical_capacity] to a numerical value (if makes sense):\n One way to do this is:\n df['electrical_capacity'] = pd.to_numeric(df['electrical_capacity'], errors='coerce')\n # (errors='coerce' will transform string values to NaN, that can then be replaced if desired; consult Pandas manual pages for more details)\n", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;31m# Generate the report\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 4\u001b[0;31m \u001b[0mreport\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msv\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0manalyze\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 5\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;31m# Display the report in a Jupyter Notebook or save it as an HTML file\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/sweetviz/sv_public.py\u001b[0m in \u001b[0;36manalyze\u001b[0;34m(source, target_feat, feat_cfg, pairwise_analysis)\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0mfeat_cfg\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mFeatureConfig\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 11\u001b[0m pairwise_analysis: str = 'auto'):\n\u001b[0;32m---> 12\u001b[0;31m report = sweetviz.DataframeReport(source, target_feat, None,\n\u001b[0m\u001b[1;32m 13\u001b[0m pairwise_analysis, feat_cfg)\n\u001b[1;32m 14\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mreport\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/sweetviz/dataframe_report.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, source, target_feature_name, compare, pairwise_analysis, fc, verbosity)\u001b[0m\n\u001b[1;32m 275\u001b[0m \u001b[0;31m# start = time.perf_counter()\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprogress_bar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mset_description_str\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34mf\"Feature: {f.source.name}\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 277\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_features\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msource\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mname\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msa\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0manalyze_feature_to_dictionary\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 278\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mprogress_bar\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mupdate\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 279\u001b[0m \u001b[0;31m# print(f\"DONE FEATURE------> {f.source.name}\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/sweetviz/series_analyzer.py\u001b[0m in \u001b[0;36manalyze_feature_to_dictionary\u001b[0;34m(to_process)\u001b[0m\n\u001b[1;32m 97\u001b[0m \u001b[0;31m# Determine SOURCE feature type\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 98\u001b[0m \u001b[0mto_process\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msource_counts\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mget_counts\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mto_process\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0msource\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 99\u001b[0;31m returned_feature_dict[\"type\"] = determine_feature_type(to_process.source, to_process.source_counts,\n\u001b[0m\u001b[1;32m 100\u001b[0m to_process.predetermined_type, \"SOURCE\")\n\u001b[1;32m 101\u001b[0m \u001b[0msource_type\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mreturned_feature_dict\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"type\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/sweetviz/type_detection.py\u001b[0m in \u001b[0;36mdetermine_feature_type\u001b[0;34m(series, counts, must_be_this_type, which_dataframe)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0;31m# inplace=True)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcounts\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"value_counts_without_nan\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mindex\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0minferred_type\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mstartswith\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"mixed\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m raise TypeError(f\"\\n\\nColumn [{series.name}] has a 'mixed' inferred_type (as determined by Pandas).\\n\"\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0;34mf\"This is is not currently supported; column types should not contain mixed data.\\n\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;34mf\"e.g. only floats or strings, but not a combination.\\n\\n\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mTypeError\u001b[0m: \n\nColumn [electrical_capacity] has a 'mixed' inferred_type (as determined by Pandas).\nThis is is not currently supported; column types should not contain mixed data.\ne.g. only floats or strings, but not a combination.\n\nPOSSIBLE RESOLUTIONS:\nBEST -> Make sure series [electrical_capacity] only contains a certain type of data (numerical OR string).\nOR -> Convert series [electrical_capacity] to a string (if makes sense) so it will be picked up as CATEGORICAL or TEXT.\n One way to do this is:\n df['electrical_capacity'] = df['electrical_capacity'].astype(str)\nOR -> Convert series [electrical_capacity] to a numerical value (if makes sense):\n One way to do this is:\n df['electrical_capacity'] = pd.to_numeric(df['electrical_capacity'], errors='coerce')\n # (errors='coerce' will transform string values to NaN, that can then be replaced if desired; consult Pandas manual pages for more details)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Assuming 'df' is your DataFrame containing the 'electrical_capacity' column\n", + "data['electrical_capacity'] = data['electrical_capacity'].astype(float)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 339 + }, + "id": "pzkOnL47r7S7", + "outputId": "49fc4170-b81b-486a-f09d-5825ecaf854a" + }, + "execution_count": 15, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[0;31m# Assuming 'df' is your DataFrame containing the 'electrical_capacity' column\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 2\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 6238\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6239\u001b[0m \u001b[0;31m# else, only a single dtype is given\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6240\u001b[0;31m \u001b[0mnew_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6241\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_constructor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__finalize__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6242\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"raise\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 448\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 449\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 450\u001b[0m def convert(\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, f, align_keys, ignore_failures, **kwargs)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 352\u001b[0;31m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 353\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mTypeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mignore_failures\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/blocks.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 526\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array_safe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 527\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmaybe_coerce_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array_safe\u001b[0;34m(values, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 298\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 299\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 300\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mValueError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;31m# e.g. astype_nansafe can fail on object-dtype of strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array\u001b[0;34m(values, dtype, copy)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_nansafe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0;31m# in pandas we don't store numpy str dtypes, so convert to object\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_nansafe\u001b[0;34m(arr, dtype, copy, skipna)\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcopy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;31m# Explicit copy, or required since NumPy can't view from / to object.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 170\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'" + ] + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "HtMjo5b-s0gn" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Delete row by index (replace 'index_to_delete' with the actual index you want to delete)\n", + "data.drop(index=1651, inplace=True)\n" + ], + "metadata": { + "id": "5-QhOnDrsu9d" + }, + "execution_count": 16, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data.drop(index=1652, inplace=True)\n" + ], + "metadata": { + "id": "RUF-j3_1s5WE" + }, + "execution_count": 18, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data['electrical_capacity'] = data['electrical_capacity'].astype(float)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 321 + }, + "id": "zW2fUuAas1M7", + "outputId": "3302ca4e-05e5-41a4-8ef3-4cd587453e14" + }, + "execution_count": 19, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 6238\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6239\u001b[0m \u001b[0;31m# else, only a single dtype is given\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6240\u001b[0;31m \u001b[0mnew_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6241\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_constructor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__finalize__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6242\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"raise\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 448\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 449\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 450\u001b[0m def convert(\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, f, align_keys, ignore_failures, **kwargs)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 352\u001b[0;31m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 353\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mTypeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mignore_failures\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/blocks.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 526\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array_safe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 527\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmaybe_coerce_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array_safe\u001b[0;34m(values, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 298\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 299\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 300\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mValueError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;31m# e.g. astype_nansafe can fail on object-dtype of strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array\u001b[0;34m(values, dtype, copy)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_nansafe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0;31m# in pandas we don't store numpy str dtypes, so convert to object\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_nansafe\u001b[0;34m(arr, dtype, copy, skipna)\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcopy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;31m# Explicit copy, or required since NumPy can't view from / to object.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 170\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Viewing rows from index 1650 to 1655\n", + "rows_1650_to_1655 = data.iloc[1650:1656]\n", + "print(rows_1650_to_1655)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "f7xeVYnDtGc0", + "outputId": "d4088d7d-2bae-4c59-93db-557e341d49b5" + }, + "execution_count": 21, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + " electrical_capacity energy_source_level_1 energy_source_level_2 \\\n", + "1650 219.0 Renewable energy Wind \n", + "1653 219.0 Renewable energy Wind \n", + "1654 219.0 Renewable energy Wind \n", + "1655 219.0 Renewable energy Wind \n", + "1656 219.0 Renewable energy Wind \n", + "1657 219.0 Renewable energy Wind \n", + "\n", + " energy_source_level_3 technology data_source nuts_1_region nuts_2_region \\\n", + "1650 NaN Offshore BEIS UKF UKF3 \n", + "1653 NaN Offshore BEIS UKF UKF3 \n", + "1654 NaN Offshore BEIS UKF UKF3 \n", + "1655 NaN Offshore BEIS UKF UKF3 \n", + "1656 NaN Offshore BEIS UKF UKF3 \n", + "1657 NaN Offshore BEIS UKF UKF3 \n", + "\n", + " nuts_3_region lon ... country commissioning_date \\\n", + "1650 UKF30 0.500643 ... England 2015-05-30 \n", + "1653 UKF30 0.500643 ... England 2015-05-30 \n", + "1654 UKF30 0.500643 ... England 2015-05-30 \n", + "1655 UKF30 0.500643 ... England 2015-05-30 \n", + "1656 UKF30 0.500643 ... England 2015-05-30 \n", + "1657 UKF30 0.500643 ... England 2015-05-30 \n", + "\n", + " solar_mounting_type chp capacity_individual_turbine number_of_turbines \\\n", + "1650 NaN NaN 3.0 73.0 \n", + "1653 NaN NaN 3.0 73.0 \n", + "1654 NaN NaN 3.0 73.0 \n", + "1655 NaN NaN 3.0 73.0 \n", + "1656 NaN NaN 3.0 73.0 \n", + "1657 NaN NaN 3.0 73.0 \n", + "\n", + " site_name uk_beis_id operator comment \n", + "1650 Humber Gateway A 2544.0 E.ON NaN \n", + "1653 Humber Gateway A 2544.0 E.ON NaN \n", + "1654 Humber Gateway A 2544.0 E.ON NaN \n", + "1655 Humber Gateway A 2544.0 E.ON NaN \n", + "1656 Humber Gateway A 2544.0 E.ON NaN \n", + "1657 Humber Gateway A 2544.0 E.ON NaN \n", + "\n", + "[6 rows x 25 columns]\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "data.head()" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 481 + }, + "id": "B9c__8U8tK58", + "outputId": "4a89bb52-0170-49d4-c612-b69857ff7a1e" + }, + "execution_count": 22, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + " electrical_capacity energy_source_level_1 energy_source_level_2 \\\n", + "0 9.9 Renewable energy Hydro \n", + "1 19.5 Renewable energy Hydro \n", + "2 65.0 Renewable energy Hydro \n", + "3 32.0 Renewable energy Hydro \n", + "4 15.0 Renewable energy Hydro \n", + "\n", + " energy_source_level_3 technology data_source \\\n", + "0 NaN Other or unspecified technology BEIS \n", + "1 NaN Other or unspecified technology BEIS \n", + "2 NaN Other or unspecified technology BEIS \n", + "3 NaN Other or unspecified technology BEIS \n", + "4 NaN Other or unspecified technology BEIS \n", + "\n", + " nuts_1_region nuts_2_region nuts_3_region lon ... country \\\n", + "0 UKL UKL1 UKL12 -4.033500 ... Wales \n", + "1 UKM UKM6 UKM63 -4.963406 ... Scotland \n", + "2 UKM UKM6 UKM63 -5.072590 ... Scotland \n", + "3 UKL UKL1 UKL13 -3.842614 ... Wales \n", + "4 UKM UKM7 UKM77 -3.740559 ... Scotland \n", + "\n", + " commissioning_date solar_mounting_type chp capacity_individual_turbine \\\n", + "0 1906-01-01 NaN NaN NaN \n", + "1 1909-01-01 NaN NaN NaN \n", + "2 1929-01-01 NaN NaN NaN \n", + "3 1938-01-01 NaN NaN NaN \n", + "4 1950-01-01 NaN NaN NaN \n", + "\n", + " number_of_turbines site_name uk_beis_id \\\n", + "0 NaN Cwm Dyli 4882.0 \n", + "1 NaN Kinlochleven Hydro Power Station 391.0 \n", + "2 NaN Lochaber 6601.0 \n", + "3 NaN Dolgarrog 4881.0 \n", + "4 NaN Pitlochry 394.0 \n", + "\n", + " operator comment \n", + "0 RWE NaN \n", + "1 Hydro Plan (on behalf of Alcan) NaN \n", + "2 GFG Alliance NaN \n", + "3 RWE NaN \n", + "4 Scottish and Southern Energy (SSE) NaN \n", + "\n", + "[5 rows x 25 columns]" + ], + "text/html": [ + "\n", + "
\n", + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
electrical_capacityenergy_source_level_1energy_source_level_2energy_source_level_3technologydata_sourcenuts_1_regionnuts_2_regionnuts_3_regionlon...countrycommissioning_datesolar_mounting_typechpcapacity_individual_turbinenumber_of_turbinessite_nameuk_beis_idoperatorcomment
09.9Renewable energyHydroNaNOther or unspecified technologyBEISUKLUKL1UKL12-4.033500...Wales1906-01-01NaNNaNNaNNaNCwm Dyli4882.0RWENaN
119.5Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-4.963406...Scotland1909-01-01NaNNaNNaNNaNKinlochleven Hydro Power Station391.0Hydro Plan (on behalf of Alcan)NaN
265.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM6UKM63-5.072590...Scotland1929-01-01NaNNaNNaNNaNLochaber6601.0GFG AllianceNaN
332.0Renewable energyHydroNaNOther or unspecified technologyBEISUKLUKL1UKL13-3.842614...Wales1938-01-01NaNNaNNaNNaNDolgarrog4881.0RWENaN
415.0Renewable energyHydroNaNOther or unspecified technologyBEISUKMUKM7UKM77-3.740559...Scotland1950-01-01NaNNaNNaNNaNPitlochry394.0Scottish and Southern Energy (SSE)NaN
\n", + "

5 rows × 25 columns

\n", + "
\n", + "
\n", + "\n", + "
\n", + " \n", + "\n", + " \n", + "\n", + " \n", + "
\n", + "\n", + "\n", + "
\n", + " \n", + "\n", + "\n", + "\n", + " \n", + "
\n", + "\n", + "
\n", + "
\n" + ] + }, + "metadata": {}, + "execution_count": 22 + } + ] + }, + { + "cell_type": "code", + "source": [ + "data.shape" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "syl12L8Bth6C", + "outputId": "28eaeac4-e7a9-441e-fce3-b83f1a378897" + }, + "execution_count": 23, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "(3969, 25)" + ] + }, + "metadata": {}, + "execution_count": 23 + } + ] + }, + { + "cell_type": "code", + "source": [ + "data['electrical_capacity'] = data['electrical_capacity'].astype(float)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 321 + }, + "id": "cxpsCMrGtkUH", + "outputId": "99ade389-7e2b-4035-8f0c-d09ce96d1b82" + }, + "execution_count": 24, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[0;32m----> 1\u001b[0;31m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'electrical_capacity'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/generic.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 6238\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6239\u001b[0m \u001b[0;31m# else, only a single dtype is given\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 6240\u001b[0;31m \u001b[0mnew_data\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_mgr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6241\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_constructor\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_data\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__finalize__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mmethod\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 6242\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 446\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 447\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mself\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mbool\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;32mFalse\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mstr\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"raise\"\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m->\u001b[0m \u001b[0mT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 448\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"astype\"\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 449\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 450\u001b[0m def convert(\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/managers.py\u001b[0m in \u001b[0;36mapply\u001b[0;34m(self, f, align_keys, ignore_failures, **kwargs)\u001b[0m\n\u001b[1;32m 350\u001b[0m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mapply\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mf\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 351\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 352\u001b[0;31m \u001b[0mapplied\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mgetattr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mb\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mf\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 353\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mTypeError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mNotImplementedError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 354\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0mignore_failures\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/internals/blocks.py\u001b[0m in \u001b[0;36mastype\u001b[0;34m(self, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 524\u001b[0m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 525\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 526\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array_safe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrors\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0merrors\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 527\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 528\u001b[0m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmaybe_coerce_values\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mnew_values\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array_safe\u001b[0;34m(values, dtype, copy, errors)\u001b[0m\n\u001b[1;32m 297\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 298\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 299\u001b[0;31m \u001b[0mnew_values\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_array\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 300\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0;34m(\u001b[0m\u001b[0mValueError\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mTypeError\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 301\u001b[0m \u001b[0;31m# e.g. astype_nansafe can fail on object-dtype of strings\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_array\u001b[0;34m(values, dtype, copy)\u001b[0m\n\u001b[1;32m 228\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 229\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 230\u001b[0;31m \u001b[0mvalues\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mastype_nansafe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mvalues\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 231\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 232\u001b[0m \u001b[0;31m# in pandas we don't store numpy str dtypes, so convert to object\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/pandas/core/dtypes/astype.py\u001b[0m in \u001b[0;36mastype_nansafe\u001b[0;34m(arr, dtype, copy, skipna)\u001b[0m\n\u001b[1;32m 168\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mcopy\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0mis_object_dtype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;31m# Explicit copy, or required since NumPy can't view from / to object.\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 170\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 171\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 172\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0marr\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mastype\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mdtype\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcopy\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mcopy\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: could not convert string to float: ' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.'" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check for non-numeric values in 'electrical_capacity'\n", + "non_numeric_values = data[~data['electrical_capacity'].apply(lambda x: str(x).replace('.', '').isdigit())]\n", + "print(non_numeric_values['electrical_capacity'].unique())\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "uIeCXlnkt_QS", + "outputId": "0e4cb977-2df4-4d9e-d53c-e60102ed7f0f" + }, + "execution_count": 25, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "[' Humber Wind Ltd/ Balfour Beatty Investments and Equitix.']\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Replace 'non_numeric_value' with the actual non-numeric value you want to remove\n", + "data = data[data['electrical_capacity'] != 'non_numeric_value']\n" + ], + "metadata": { + "id": "iry5n0b_ujQM" + }, + "execution_count": 26, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "data['electrical_capacity'] = pd.to_numeric(data['electrical_capacity'], errors='coerce')\n" + ], + "metadata": { + "id": "3h7OBUcmuvhx" + }, + "execution_count": 27, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "# Check data types of all columns\n", + "print(data.dtypes)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "JAxGoBOyuy7_", + "outputId": "7c8b9edf-5135-4425-8af9-d6262682d2d7" + }, + "execution_count": 28, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "electrical_capacity float64\n", + "energy_source_level_1 object\n", + "energy_source_level_2 object\n", + "energy_source_level_3 object\n", + "technology object\n", + "data_source object\n", + "nuts_1_region object\n", + "nuts_2_region object\n", + "nuts_3_region object\n", + "lon float64\n", + "lat float64\n", + "municipality object\n", + "postcode object\n", + "address object\n", + "region object\n", + "country object\n", + "commissioning_date object\n", + "solar_mounting_type object\n", + "chp object\n", + "capacity_individual_turbine float64\n", + "number_of_turbines float64\n", + "site_name object\n", + "uk_beis_id float64\n", + "operator object\n", + "comment object\n", + "dtype: object\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Check for missing values\n", + "missing_values = data.isnull().sum()\n", + "\n", + "\n", + "print(missing_values)" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "WBt91ZQuuy_a", + "outputId": "e9355445-ce87-4505-a4d2-cac93001c6c7" + }, + "execution_count": 30, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "electrical_capacity 1\n", + "energy_source_level_1 1\n", + "energy_source_level_2 1\n", + "energy_source_level_3 3398\n", + "technology 340\n", + "data_source 1\n", + "nuts_1_region 3\n", + "nuts_2_region 3\n", + "nuts_3_region 3\n", + "lon 3\n", + "lat 3\n", + "municipality 3\n", + "postcode 2769\n", + "address 8\n", + "region 2\n", + "country 2\n", + "commissioning_date 1\n", + "solar_mounting_type 2840\n", + "chp 3406\n", + "capacity_individual_turbine 1843\n", + "number_of_turbines 1843\n", + "site_name 1\n", + "uk_beis_id 1\n", + "operator 39\n", + "comment 3967\n", + "dtype: int64\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Group by 'energy_source_level_1' and 'technology' to sum the capacities\n", + "capacity_distribution = data.groupby(['energy_source_level_1', 'technology'])['electrical_capacity'].sum().reset_index()\n" + ], + "metadata": { + "id": "7zJwTeKCwcfJ" + }, + "execution_count": 31, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Create a bar plot to visualize capacity distribution\n", + "plt.figure(figsize=(12, 8))\n", + "sns.barplot(x='electrical_capacity', y='energy_source_level_1', hue='technology', data=capacity_distribution)\n", + "plt.title('Capacity Distribution by Energy Source and Technology')\n", + "plt.xlabel('Total Electrical Capacity')\n", + "plt.ylabel('Energy Source Level 1')\n", + "plt.legend(title='Technology', loc='center left', bbox_to_anchor=(1, 0.5))\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 738 + }, + "id": "ker6IEybxNjk", + "outputId": "ac984488-bfae-4f8d-f0f6-cb23fb2b9a19" + }, + "execution_count": 32, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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Kmjfvn3q3r273nvvPR07dkyS9Omnn2rlypX65ptvdOzYMUVERMjb29tinyNGjFCLFi104MAB1a9fX23atNG1a9ckSefPn1f9+vVVsWJFRUdHa8aMGZo7d65Gjx5tsY/58+fLzs5OUVFRmjlzpuLi4lSjRg2VK1dOe/bsUWRkpC5duqQWLVq8oKsGZK50B7YhISHasWNHivadO3cqJCQkI2oCAAAAAABABjhx4oQMw3jsjeL9/Pz0559/6sqVK5Kk+vXrq3v37ipatKiGDBminDlzatOmTZKks2fPytfXV2+++aa8vLz05ptvqnXr1hb7CwkJUevWrVW0aFGNHTtW8fHx2rVrlyRp+vTpKliwoKZNm6YSJUooODhYI0aM0KRJk5SUlGTeh6+vryZMmKDixYurePHimjZtmsqVK6exY8eqRIkSKleunL788ktt2rRJx48ffxGXDchU6Q5s9+3bpypVqqRof/3117V///6MqAkAAAAAAAAZKHkG7dOUKVPG/GeTySRPT09dvnxZ0oMwdv/+/SpevLh69+6tdevWPXF7Z2dnubm5mbc/cuSIKleuLJPJZB5TpUoVxcfH67fffjO3vfrqqxb7jI6O1qZNm+Ti4mJ+lChRQpIUExOTpvMC/knSHdiaTCbdvHkzRfv169eVmJiYIUUBAAAAAADg+RUtWlQmk0lHjhxJtf/IkSPKli2bcuXKJUmytbW16DeZTObZr+XLl1dsbKxGjRqlv/76Sy1atFCzZs0sxj9p+7Rydna2eB4fH69GjRpp//79Fo8TJ06oWrVq6do38E+Q7sC2WrVqGjdunEU4m5iYqHHjxunNN9/M0OIAAAAAAADw7HLkyKHatWtr+vTp+uuvvyz6Ll68qIiICLVs2dJi1uuTuLm5qWXLlvriiy/09ddf69tvvzWvUfs0fn5++umnnyxm+0ZFRcnV1VUFChR47Hbly5fXoUOH5O3traJFi1o8Hg13gX+DdAe2H330kX788UcVL15cHTp0UIcOHVS8eHFt3bpVH3/88YuoEQAAAAAAAM9o2rRpunPnjoKCgrR161adO3dOkZGRql27tvLnz68xY8akaT+ffPKJlixZoqNHj+r48eNaunSpPD095eHhkabtu3fvrnPnzqlXr146evSovvvuO4WGhqp///7KkuXxEVWPHj107do1tW7dWrt371ZMTIzWrl2rDh068G1v/CtlTe8GpUqV0oEDBzRt2jRFR0fL0dFR7dq1U8+ePZU9e/YXUSMAAAAAAIDVKjT818wu4Yl8fX21Z88ehYaGqkWLFrp27Zo8PT0VHBys0NDQNOc5rq6umjBhgk6cOCEbGxtVrFhRa9aseWLY+rD8+fNrzZo1GjRokMqWLavs2bOrU6dO+u9///vE7fLly6eoqCgNGTJEderU0Z07d+Tl5aW6deum+djAP4nJSOuq05Lu3bununXraubMmfL19X2RdQG6ceOG3N3dVWl8JWV1TPfvFhTVK+oFVAUAAAAA+LdK/n/o9evX5ebmZtGXkJCg2NhY+fj4yMHBIZMqBPBPltbPkXT9GsLW1lYHDhx47uJeBiaTSStWrHhs/+nTp2UymbR///6/rSYAAAAAAAAA1i3d88bfffddzZ07N0MOHhISIpPJJJPJJFtbW/n4+Gjw4MFKSEjIkP0DAAAAAAAAwD9Jur9nfv/+fX355ZfasGGDXn311RR34/vkk0/Stb+6desqPDxc9+7d0y+//KL27dvLZDJp/Pjx6S0Nf5O7d+/Kzs4us8sAAAAAAAAA/nXSPcP24MGDKl++vFxdXXX8+HHt27fP/HiWr/fb29vL09NTBQsWVHBwsGrVqqX169eb+5OSkjRu3Dj5+PjI0dFRZcuW1bJly8z9mzdvlslk0saNG1WhQgU5OTnpjTfe0LFjxyyO891336l8+fJycHBQ4cKFNWLECN2/f1+SNHDgQDVs2NA8dsqUKTKZTIqMjDS3FS1aVHPmzJEk7d69W7Vr11bOnDnl7u6ugIAA7d27N8W5XbhwQfXq1ZOjo6MKFy5sUXdqDh48qHr16snFxUV58uRR27Zt9ccffzxxm+3bt6tq1apydHRUwYIF1bt3b926dcvc7+3trbFjx6pjx45ydXVVoUKFNHv2bIt9nDt3Ti1atJCHh4eyZ8+uxo0b6/Tp0+b+kJAQBQcHa8yYMcqXL5+KFy8uSdqxY4f8/f3l4OCgChUqaMWKFeZlHgzDUNGiRTVx4kSLY+3fv18mk0knT5584nkBAAAAAAAAL6N0B7abNm167OPHH398rmIOHjyoHTt2WMzeHDdunBYsWKCZM2fq0KFD6tevn959911t2bLFYtthw4Zp0qRJ2rNnj7JmzaqOHTua+7Zt26Z27dqpT58+Onz4sGbNmqV58+ZpzJgxkqSAgABt375diYmJkqQtW7YoZ86c2rx5syTp/PnziomJUWBgoCTp5s2bat++vbZv366ff/5Zvr6+ql+/vm7evGlR04cffqimTZsqOjpabdq0UatWrXTkyJFUzz0uLk41atRQuXLltGfPHkVGRurSpUtq0aLFY69XTEyM6tatq6ZNm+rAgQP6+uuvtX37dvXs2dNi3KRJk1ShQgXt27dP3bt313vvvWcOtO/du6egoCC5urpq27ZtioqKkouLi+rWrau7d++a97Fx40YdO3ZM69ev1+rVq3Xjxg01atRIpUuX1t69ezVq1CgNGTLEPN5kMqljx44KDw+3qCU8PFzVqlVT0aJFU5zPnTt3dOPGDYsHAAAAAAAA8DIxGYZhZNbBQ0JCtGjRIjk4OOj+/fu6c+eOsmTJom+++UZNmzbVnTt3lD17dm3YsEGVK1c2b9e5c2fdvn1bixcv1ubNm1W9enVt2LBBNWvWlCStWbNGDRo00F9//SUHBwfVqlVLNWvW1Pvvv2/ex6JFizR48GD9/vvviouLU44cObRz5069+uqrypkzpwYNGqQVK1bo559/VkREhIYMGaLffvst1fNISkqSh4eHFi9ebJ6pazKZ9J///EczZswwj3v99ddVvnx5TZ8+XadPn5aPj4/27dsnf39/jR49Wtu2bdPatWvN43/77TcVLFhQx44dU7FixVIct3PnzrKxsdGsWbPMbdu3b1dAQIBu3bolBwcHeXt7q2rVqlq4cKEkyTAMeXp6asSIEfrPf/6jRYsWafTo0Tpy5IhMJpOkB0seeHh4aMWKFapTp45CQkIUGRmps2fPmsP0mTNn6r///a9+++03813t5syZoy5dupjP6ffff1ehQoW0Y8cOVapUSffu3VO+fPk0ceJEtW/fPsX5hIWFacSIESnaK42vpKyO6V69Q1G9otK9DQAAAADg5XXjxg25u7vr+vXrcnNzs+hL693dAeBx0vo5ku4UrHr16uZgLzXpnWVbvXp1zZgxQ7du3dLkyZOVNWtWNW3aVJJ08uRJ3b59W7Vr17bY5u7duypXrpxFW5kyZcx/zps3ryTp8uXLKlSokKKjoxUVFWWeUStJiYmJSkhI0O3bt+Xh4aGyZctq8+bNsrOzk52dnbp27arQ0FDFx8dry5YtCggIMG976dIl/fe//9XmzZt1+fJlJSYm6vbt2zp79qxFTQ+HzMnPH7dsRHR0tDZt2iQXF5cUfTExMakGttHR0Tpw4IAiIiLMbYZhKCkpSbGxsfLz80txbUwmkzw9PXX58mXzPk6ePClXV1eLfSckJCgmJsb8vHTp0hYzn48dO6YyZcpYvLkqVapksY98+fKpQYMG+vLLL1WpUiWtWrVKd+7cUfPmzVO9Bu+//7769+9vfn7jxg0VLFgw1bEAAAAAAADAv1G6A1t/f3+L5/fu3dP+/ft18ODBVGdNPo2zs7P56/FffvmlypYtq7lz56pTp06Kj4+XJH3//ffKnz+/xXb29vYWz21tbc1/Tg6Uk5KSJEnx8fEaMWKEmjRpkuL4yYFjYGCgNm/eLHt7ewUEBCh79uzy8/PT9u3btWXLFg0YMMC8Tfv27XX16lVNnTpVXl5esre3V+XKlS2WEEiv+Ph4NWrUKNWbrSUH0Klt061bN/Xu3TtFX6FChcx/fvjaSA+uz8PX5tVXX7UIfZPlypXL/OdHby6XVp07d1bbtm01efJkhYeHq2XLlnJyckp1rL29fYrXFQAAAAAAAHiZpDuwnTx5cqrtYWFh5oD1WWXJkkUffPCB+vfvr3feeUclS5aUvb29zp49azHDNb3Kly+vY8eOpbpuarKAgAB9+eWXypo1q+rWrSvpQYi7ZMkSHT9+3Lx+rSRFRUVp+vTpql+/vqQHN+1K7eZgP//8s9q1a2fx/NGZwQ/X+O2338rb21tZs6btZSlfvrwOHz78xPNKyz6+/vpr5c6dO8XXPZ6kePHiWrRoke7cuWMOWXfv3p1iXP369eXs7KwZM2YoMjJSW7dufeZaAQAAAAAAgH+79C8M+hjvvvuuKlWqpIkTJz7Xfpo3b65Bgwbp888/18CBAzVw4ED169dPSUlJevPNN3X9+nVFRUXJzc0tzTN6hw8froYNG6pQoUJq1qyZsmTJoujoaB08eFCjR4+WJFWrVk03b97U6tWr9dFHH0l6ENg2a9ZMefPmtViSwNfXVwsXLlSFChV048YNDRo0SI6OjimOu3TpUlWoUEFvvvmmIiIitGvXLs2dOzfVGnv06KEvvvhCrVu31uDBg5U9e3adPHlSX331lebMmSMbG5sU2wwZMkSvv/66evbsqc6dO8vZ2VmHDx/W+vXrNW3atDRdmzZt2ujjjz9W48aNNXLkSBUoUEBnzpzR8uXLNXjwYBUoUCDV7d555x0NGzZMXbt21dChQ3X27Fnza//wkhk2NjYKCQnR+++/L19f3xTLRAAAAAAA8E9X5bMqf9ux/u77tcybN099+/ZVXFzc33pcPBAYGCh/f39NmTJFknT79m21bdtW69ev182bN/Xnn3/K399fffv2Vd++fZ/5OGFhYVqxYsVjl/J8UUJCQhQXF6cVK1b8K46TUbJk1I5++umnDFl0O2vWrOrZs6cmTJigW7duadSoUfrwww81btw4+fn5qW7duvr+++/l4+OT5n0GBQVp9erVWrdunSpWrKjXX39dkydPlpeXl3lMtmzZVLp0aeXKlUslSpSQ9CDETUpKSjG7d+7cufrzzz9Vvnx5tW3bVr1791bu3LlTHHfEiBH66quvVKZMGS1YsEBLlixRyZIlU60xX758ioqKUmJiourUqaPSpUurb9++8vDwUJYsqb9MZcqU0ZYtW3T8+HFVrVpV5cqV0/Dhw5UvX740XxsnJydt3bpVhQoVUpMmTeTn56dOnTopISHhiTNu3dzctGrVKu3fv1/+/v4aNmyYhg8fLkkp3gedOnXS3bt31aFDhzTXBQAAAAAAMsa5c+fUsWNH5cuXT3Z2dvLy8lKfPn109epVi3He3t7mYBDWYfny5Ro1apT5+fz587Vt2zbt2LFDFy5ckLu7u3bv3q2uXbu+0Do2b94sk8lEcP83SfcM20fXgTUMQxcuXNCePXv04Ycfpmtf8+bNS7V96NChGjp0qPl5nz591KdPn1THBgYGyjAMizZ/f/8UbUFBQQoKCnpiPY/+FiF79uzmtV4fVq5cuRRf/2/WrJnF8+Tjd+/ePdVjeXt7p6jR19dXy5cvf2KNj6pYsaLWrVv32P7Tp0+naHv0PD09PTV//vzH7uNxr9Mbb7yh6Oho8/OIiAjZ2tparJ8rSefPn5etra3F8hAAAAAAAODFO3XqlCpXrqxixYppyZIl8vHx0aFDhzRo0CD98MMP+vnnn5U9e/a/va579+6luOfOs7h7967FTdL/bR59bWJiYuTn56dXXnnF3PbwPYjw75DuGbbu7u4Wj+zZsyswMFBr1qxRaGjoi6gRVmrBggXavn27YmNjtWLFCg0ZMkQtWrQwLw9x584d/fbbbwoLC1Pz5s2VJ0+eTK4YAAAAAICXS48ePWRnZ6d169YpICBAhQoVUr169bRhwwadP39ew4YNk/RgQtyZM2fUr18/mUwmi+UOJWnt2rXy8/OTi4uL6tatqwsXLlj0z5kzR35+fnJwcFCJEiU0ffp0c9/p06dlMpn09ddfKyAgQA4ODqne/FySzp49q8aNG8vFxUVubm5q0aKFLl26ZO4PCwuTv7+/5syZIx8fn8d+2zt53MOmTJkib29v8/OQkBAFBwdr4sSJyps3r3LkyKEePXro3r175jHTp0+Xr6+vHBwclCdPHosJe4GBgerZs6d69uwpd3d35cyZUx9++KHFBL07d+5o4MCByp8/v5ydnfXaa69p8+bNFnVFRUUpMDBQTk5OypYtm4KCgvTnn3+aj5G81EFgYKAmTZqkrVu3ymQyme+39OjM6Li4OHXu3Fm5cuWSm5ubatSoYTHhTpI++ugj5cmTR66uruZvWj/O6dOnVb16dUkPvqFuMpkUEhIiSUpKStK4cePk4+MjR0dHlS1bVsuWLbPY/tChQ2rYsKHc3Nzk6uqqqlWrKiYmxmLMk14Db29vjR07Vh07dpSrq6sKFSqk2bNnW2z/66+/qkaNGnJ0dFSOHDnUtWvXJ95r686dO+ZvzDs4OOjNN99MMTlz5cqV5te+evXqmj9/vnmW8a1bt+Tm5pbiXFesWCFnZ2fdvHnzscdOi3QHtuHh4RaPuXPn6qOPPlKdOnWeqxD881y8eFHvvvuu/Pz81K9fPzVv3tziB2bJkiXy8vJSXFycJkyYkImVAgAAAADw8rl27ZrWrl2r7t27p7j3jqenp9q0aaOvv/5ahmFo+fLlKlCggEaOHKkLFy5YBLK3b9/WxIkTtXDhQm3dulVnz57VwIEDzf0REREaPny4xowZoyNHjmjs2LH68MMPU3ybd+jQoerTp4+OHDmS6regk5KS1LhxY127dk1btmzR+vXrderUKbVs2dJi3MmTJ/Xtt99q+fLlz73m6qZNmxQTE6NNmzZp/vz5mjdvnvmbxnv27FHv3r01cuRIHTt2TJGRkapWrZrF9vPnz1fWrFm1a9cuTZ06VZ988onmzJlj7u/Zs6d++uknffXVVzpw4ICaN2+uunXr6sSJE5IefAu6Zs2aKlmypH766Sdt375djRo1UmJiYopaly9fri5duqhy5cq6cOHCY7+l3bx5c12+fFk//PCDfvnlF5UvX141a9bUtWvXJEnffPONwsLCNHbsWO3Zs0d58+a1CNgfVbBgQX377beSpGPHjunChQuaOnWqJGncuHFasGCBZs6cqUOHDqlfv3569913tWXLFkkPvnVdrVo12dvb68cff9Qvv/yijh076v79+2l6DZJNmjRJFSpU0L59+9S9e3e99957OnbsmCTp1q1bCgoKUrZs2bR7924tXbpUGzZsUM+ePR97ToMHD9a3336r+fPna+/evSpatKiCgoLM1yg2NlbNmjVTcHCwoqOj1a1bN/MvNyTJ2dlZrVq1Unh4uMV+w8PD1axZM7m6uj722GnxzDcd++WXX3TkyBFJUqlSpVSuXLnnKgT/PIMHD9bgwYMf2x8SEmL+jQsAAAAAAPh7nThxQoZhyM/PL9V+Pz8//fnnn7py5Ypy584tGxsbubq6ytPT02LcvXv3NHPmTBUpUkTSgxBy5MiR5v7Q0FBNmjTJvIymj4+PDh8+rFmzZlncML5v374pltp82MaNG/Xrr78qNjZWBQsWlPTg272lSpXS7t27VbFiRUkPlkFYsGBBhiwFkC1bNk2bNk02NjYqUaKEGjRooI0bN6pLly46e/asnJ2d1bBhQ7m6usrLyytF/lWwYEFNnjxZJpNJxYsX16+//qrJkyebtw8PD9fZs2fN9xsaOHCgIiMjFR4errFjx2rChAmqUKGCRWBaqlSpVGvNnj27nJycZGdnl+I1SrZ9+3bt2rVLly9flr29vaQHs1dXrFihZcuWqWvXrpoyZYo6deqkTp06SZJGjx6tDRs2PHaWrY2NjXlphty5c8vDw0PSg1mqY8eO1YYNG8w3mS9cuLC2b9+uWbNmKSAgQJ9//rnc3d311VdfmZfAKFasWJpfg2T169c3Lzs6ZMgQTZ48WZs2bVLx4sW1ePFiJSQkaMGCBXJ2dpYkTZs2TY0aNdL48eNTfOP71q1bmjFjhubNm6d69epJkr744gutX79ec+fO1aBBgzRr1iwVL15cH3/8sSSpePHiOnjwoMaMGWPeT+fOnfXGG2/owoULyps3ry5fvqw1a9Zow4YNqV7H9Ej3DNvLly+rRo0aqlixonr37q3evXvr1VdfVc2aNXXlypXnLggAAAAAAAAZ59F76KSXk5OTOayVZA6npAfhV0xMjDp16iQXFxfzY/To0Sm+9l6hQoUnHufIkSMqWLCgOayVpJIlS8rDw8M8aVCSvLy8Mmzd1lKlSsnGxsb8/OFzq127try8vFS4cGG1bdtWERERun37tsX2r7/+usXyEZUrV9aJEyeUmJioX3/9VYmJiSpWrJjFtdmyZYv52iTPsM0o0dHRio+PV44cOSyOGRsbaz7mkSNH9Nprr1lslxy4psfJkyd1+/Zt1a5d2+JYCxYssDi/qlWrPnG94ie9BsnKlClj/rPJZJKnp6d5zJEjR1S2bFlzWCtJVapUUVJSknkW7sNiYmJ07949ValSxdxma2urSpUqmd9nx44dM/+CIFmlSpVSPC9VqpR5JvmiRYvk5eWVYhb2s0j3DNtevXrp5s2bOnTokPk3NIcPH1b79u3Vu3dvLVmy5LmLAgAAAAAAwPMpWrSoTCaTjhw5orfffjtF/5EjR5QtW7anhp+Phm0mk8kcAievE/rFF1+kCAEfDuEkWQRqzyMt+8mSJUuKoPrhdVGTpXZuyTegd3V11d69e7V582atW7dOw4cPV1hYmHbv3m2eZfok8fHxsrGx0S+//JLiWri4uEhSiqUqnld8fLzy5s2bYp1cSWmqOb3HkqTvv/9e+fPnt+hLnt2blvN70muQnjGZoXPnzvr88881dOhQhYeHq0OHDinWf34W6Z5hGxkZqenTp1tMpy9ZsqQ+//xz/fDDD89dEAAAAAAAAJ5fjhw5VLt2bU2fPl1//fWXRd/FixcVERGhli1bmgMmOzu7VNdOfZI8efIoX758OnXqlIoWLWrx8PHxSde+/Pz8dO7cOZ07d87cdvjwYcXFxalkyZLp2leuXLl08eJFi9D2Wda7zZo1q2rVqqUJEybowIEDOn36tH788Udz/86dOy3G//zzz/L19ZWNjY3KlSunxMREXb58OcW1SV7SoEyZMtq4cWO663qc8uXL6+LFi8qaNWuKY+bMmVPSg+ucWt1PYmdnJ0kW74+SJUvK3t5eZ8+eTXGs5FnSZcqU0bZt21INyzOKn5+foqOjdevWLXNbVFSUsmTJouLFi6cYX6RIEdnZ2SkqKsrcdu/ePe3evdv8PitevLj27Nljsd2jNyWTpHfffVdnzpzRp59+ap7QmhHSHdgmJSWlOo3Z1tbWKpJtAAAAAAAAPDBt2jTduXNHQUFB2rp1q86dO6fIyEjVrl1b+fPnt1iT09vbW1u3btX58+f1xx9/pPkYI0aM0Lhx4/Tpp5/q+PHj+vXXXxUeHq5PPvkkXbXWqlVLpUuXVps2bbR3717t2rVL7dq1U0BAwFOXU3hUYGCgrly5ogkTJigmJuaZJhquXr1an376qfbv368zZ85owYIFSkpKsggBz549q/79++vYsWNasmSJPvvsM/Xp00fSg7Va27Rpo3bt2mn58uWKjY3Vrl27NG7cOH3//feSpPfff1+7d+9W9+7ddeDAAR09elQzZsxI1/V/WK1atVS5cmUFBwdr3bp1On36tHbs2KFhw4aZA8g+ffroyy+/VHh4uI4fP67Q0FAdOnToifv18vKSyWTS6tWrdeXKFcXHx8vV1VUDBw5Uv379NH/+fMXExGjv3r367LPPzMsE9OzZUzdu3FCrVq20Z88enThxQgsXLkx1qYJn1aZNGzk4OKh9+/Y6ePCgNm3apF69eqlt27Yp1q+VHszQfu+99zRo0CBFRkbq8OHD6tKli27fvm1e17dbt246evSohgwZouPHj+ubb74x3wjt4Rm02bJlU5MmTTRo0CDVqVNHBQoUyJBzSveSCDVq1FCfPn20ZMkS84LJ58+fV79+/TJ0zQ0AAAAAAIB/gqheUU8flEl8fX21Z88ehYaGqkWLFrp27Zo8PT0VHBys0NBQ882kJGnkyJHq1q2bihQpojt37qR57dvOnTvLyclJH3/8sQYNGiRnZ2eVLl1affv2TVetJpNJ3333nXr16qVq1aopS5Ysqlu3rj777LN07Ud6MOty+vTpGjt2rEaNGqWmTZtq4MCBmj17dpr34eHhoeXLlyssLEwJCQny9fXVkiVLLG4K1q5dO/3111+qVKmSbGxs1KdPH3Xt2tXcHx4ertGjR2vAgAE6f/68cubMqddff10NGzaU9CDUXbdunT744ANVqlRJjo6Oeu2119S6det0n7P04BquWbNGw4YNU4cOHXTlyhV5enqqWrVq5vCyZcuWiomJ0eDBg5WQkKCmTZvqvffe09q1ax+73/z582vEiBEaOnSoOnTooHbt2mnevHkaNWqUcuXKpXHjxunUqVPy8PBQ+fLl9cEHH0h6MMv7xx9/1KBBgxQQECAbGxv5+/tbrB/7vJycnLR27Vr16dNHFStWlJOTk5o2bfrEXxh89NFHSkpKUtu2bXXz5k1VqFBBa9euVbZs2SQ9uHHesmXLNGDAAE2dOlWVK1fWsGHD9N5775mXe0jWqVMnLV68WB07dsywczIZ6Vx5+ty5c3rrrbd06NAh8/Tmc+fO6ZVXXtHKlSszLEkGbty4IXd3d1UaX0lZHdP9uwWr/gsTAAAAAGB9kv8fev36dbm5uVn0JSQkKDY2Vj4+PnJwcMikCmFNAgMD5e/vrylTpmR2KfgbjBkzRjNnzrRYskOSFi5cqH79+un33383Lx3xOGn9HEl3ClawYEHt3btXGzZs0NGjRyU9+K1FrVq10rsrAAAAAAAAALA606dPV8WKFZUjRw5FRUXp448/Vs+ePc39t2/f1oULF/TRRx+pW7duTw1r0yP90xb1YHp17dq1Vbt27QwrBAAAAAAAAACswYkTJzR69Ghdu3ZNhQoV0oABA/T++++b+ydMmKAxY8aoWrVqFu0ZIc1LIvz000+6evWqeY0NSVqwYIFCQ0N169YtBQcH67PPPkuxjgPwrFgSAQAAAADwd2JJBAAvUlo/R7KkdYcjR460uGPcr7/+qk6dOqlWrVoaOnSoVq1apXHjxj1f1QAAAAAAAADwEktzYLt//37VrFnT/Pyrr77Sa6+9pi+++EL9+/fXp59+qm+++eaFFAkAAAAAAAAAL4M0B7Z//vmn8uTJY36+ZcsW1atXz/y8YsWKKe6SBgAAAAAAAABIuzQHtnny5FFsbKwk6e7du9q7d69ef/11c//Nmzdla2ub8RUCAAAAAAAAwEsizYFt/fr1NXToUG3btk3vv/++nJycVLVqVXP/gQMHVKRIkRdSJAAAAAAAAAC8DLKmdeCoUaPUpEkTBQQEyMXFRfPnz5ednZ25/8svv1SdOnVeSJEAAAAAAAAA8DJIc2CbM2dObd26VdevX5eLi4tsbGws+pcuXSoXF5cMLxAAAAAAAMCabakW8LcdK2Drlgzd37x589S3b1/FxcVl6H7/LhlV/z/9OuDfJc1LIiRzd3dPEdZKUvbs2S1m3AIAAAAAACDzhYSEyGQyyWQyyc7OTkWLFtXIkSN1//79DNn/6dOnZTKZtH///gzZ3/MICwuTv79/urdr2bKljh8/nvEFAc8gzTNsAQAAAAAA8M9Ut25dhYeH686dO1qzZo169OghW1tb5c2bN7NLswqOjo5ydHTM7DIASc8wwxYAAAAAAAD/LPb29vL09JSXl5fee+891apVSytXrjT3r127Vn5+fnJxcVHdunV14cIFc19SUpJGjhypAgUKyN7eXv7+/oqMjDT3+/j4SJLKlSsnk8mkwMDANG33xhtvaMiQIRZ1XrlyRba2ttq6dask6c8//1S7du2ULVs2OTk5qV69ejpx4kSq5zhv3jyNGDFC0dHR5hnF8+bNkyR98sknKl26tJydnVWwYEF1795d8fHxFtt6eHhY7G/VqlWqWLGiHBwclDNnTr399tvmvunTp8vX11cODg7KkyePmjVr9rSXAEgzAlsAAAAAAICXjKOjo+7evStJun37tiZOnKiFCxdq69atOnv2rAYOHGgeO3XqVE2aNEkTJ07UgQMHFBQUpLfeesscnO7atUuStGHDBl24cEHLly9P03Zt2rTRV199JcMwzMf6+uuvlS9fPlWtWlXSg+Uc9uzZo5UrV+qnn36SYRiqX7++7t27l+KcWrZsqQEDBqhUqVK6cOGCLly4oJYtW0qSsmTJok8//VSHDh3S/Pnz9eOPP2rw4MGPvT7ff/+93n77bdWvX1/79u3Txo0bValSJUnSnj171Lt3b40cOVLHjh1TZGSkqlWr9mwvBJCKdAe2t27dehF1AAAAAAAA4AUzDEMbNmzQ2rVrVaNGDUnSvXv3NHPmTFWoUEHly5dXz549tXHjRvM2EydO1JAhQ9SqVSsVL15c48ePl7+/v6ZMmSJJypUrlyQpR44c8vT0VPbs2dO0XYsWLfT7779r+/bt5mMtXrxYrVu3lslk0okTJ7Ry5UrNmTNHVatWVdmyZRUREaHz589rxYoVKc7N0dFRLi4uypo1qzw9PeXp6Wle5qBv376qXr26vL29VaNGDY0ePVrffPPNY6/TmDFj1KpVK40YMUJ+fn4qW7as3n//fUnS2bNn5ezsrIYNG8rLy0vlypVT7969n+0FAVKR7sA2T5486tixo8UPEwAAAAAAAKzX6tWr5eLiIgcHB9WrV08tW7ZUWFiYJMnJyUlFihQxj82bN68uX74sSbpx44Z+//13ValSxWJ/VapU0ZEjRx57vLRslytXLtWpU0cRERGSpNjYWP30009q06aNJOnIkSPKmjWrXnvtNfP2OXLkUPHixZ947NRs2LBBNWvWVP78+eXq6qq2bdvq6tWrun37dqrj9+/fr5o1a6baV7t2bXl5ealw4cJq27atIiIiHrsf4FmkO7BdtGiRrl27pho1aqhYsWL66KOP9Pvvv7+I2gAAAAAAAJABqlevrv379+vEiRP666+/NH/+fDk7O0uSbG1tLcaaTCaLZQpepDZt2mjZsmW6d++eFi9erNKlS6t06dIZeozTp0+rYcOGKlOmjL799lv98ssv+vzzzyXJvCzEo550AzJXV1ft3btXS5YsUd68eTV8+HCVLVtWcXFxGVo3Xl7pDmyDg4O1YsUKnT9/Xv/5z3+0ePFieXl5qWHDhlq+fLnu37//IuoEAAAAAADAM3J2dlbRokVVqFAhZc2aNc3bubm5KV++fIqKirJoj4qKUsmSJSVJdnZ2kqTExMR0bSdJjRs3VkJCgiIjI7V48WLz7FpJ8vPz0/3797Vz505z29WrV3Xs2DGLfTzMzs7Oog5J+uWXX5SUlKRJkybp9ddfV7FixZ46+bBMmTIWy0I8KmvWrKpVq5YmTJigAwcO6PTp0/rxxx+fuE8grdL+E/qIXLlyqX///urfv78+++wzDRo0SGvWrFHOnDn1n//8R0OHDpWTk1NG1goAAAAAAIC/2aBBgxQaGqoiRYrI399f4eHh2r9/v3kpg9y5c8vR0VGRkZEqUKCAHBwc5O7u/tTtpAdBcnBwsD788EMdOXJErVu3Nvf5+vqqcePG6tKli2bNmiVXV1cNHTpU+fPnV+PGjVOt1dvbW7Gxsdq/f78KFCggV1dXFS1aVPfu3dNnn32mRo0aKSoqSjNnznziOYeGhqpmzZoqUqSIWrVqpfv372vNmjUaMmSIVq9erVOnTqlatWrKli2b1qxZo6SkJBUvXjwDrjbwHIHtpUuXNH/+fM2bN09nzpxRs2bN1KlTJ/32228aP368fv75Z61bty4jawUAAAAAALA6AVu3ZHYJL1Tv3r11/fp1DRgwQJcvX1bJkiW1cuVK+fr6Snow2/TTTz/VyJEjNXz4cFWtWlWbN29+6nbJ2rRpo/r166tatWoqVKiQRV94eLj69Omjhg0b6u7du6pWrZrWrFmTYhmHZE2bNtXy5ctVvXp1xcXFKTw8XCEhIfrkk080fvx4vf/++6pWrZrGjRundu3aPfacAwMDtXTpUo0aNUofffSR3NzcVK1aNUmSh4eHli9frrCwMCUkJMjX11dLlixRqVKlnucyA2YmI52Lkixfvlzh4eFau3atSpYsqc6dO+vdd9+Vh4eHeUxMTIz8/Pweuw4IkBY3btyQu7u7Ko2vpKyO6f/dQlSvqKcPAgAAAADg/0v+f+j169fl5uZm0ZeQkKDY2Fj5+PjIwcEhkyoE8E+W1s+RdKdgHTp0UKtWrRQVFaWKFSumOiZfvnwaNmxYencNAAAAAAAAAC+1dAe2Fy5ceOratI6OjgoNDX3mogAAAAAAAADgZZTuwPb+/fu6ceNGinaTySR7e3vznQEBAAAAAAAAAOmT7sDWw8NDJpPpsf0FChRQSEiIQkNDlSVLlucqDgAAAAAAAABeJukObOfNm6dhw4YpJCRElSpVkiTt2rVL8+fP13//+19duXJFEydOlL29vT744IMMLxgAAAAAAAAA/q3SHdjOnz9fkyZNUosWLcxtjRo1UunSpTVr1ixt3LhRhQoV0pgxYwhsAQAAAAAAACAd0r1mwY4dO1SuXLkU7eXKldNPP/0kSXrzzTd19uzZ568OAAAAAAAAAF4i6Q5sCxYsqLlz56Zonzt3rgoWLChJunr1qrJly/b81QEAAAAAAADASyTdSyJMnDhRzZs31w8//KCKFStKkvbs2aOjR49q2bJlkqTdu3erZcuWGVspAAAAAAAAAPzLpTuwfeutt3Ts2DHNmjVLx44dkyTVq1dPK1askLe3tyTpvffey9AiAQAAAAAArNW0Aav+tmP1nNTobzuWtTKZTPrf//6n4ODgzC4FeCHSFdjeu3dPdevW1cyZMzVu3LgXVRMAAAAAAAAyQEhIiObPny9JsrW1VaFChdSuXTt98MEHypo13fP4/vFCQkIUFxenFStWZHYpwGOl6yfT1tZWBw4ceFG1AAAAAAAAIIPVrVtX4eHhunPnjtasWaMePXrI1tZW77//fmaX9o919+5d2dnZZXYZ+JdK903H3n333VRvOga8KKErsmrs0vQ/tlQLSNMDAAAAAIB/M3t7e3l6esrLy0vvvfeeatWqpZUrV0qSAgMD1bdvX4vxwcHBCgkJMT/39vbW6NGj1a5dO7m4uMjLy0srV67UlStX1LhxY7m4uKhMmTLas2ePeZt58+bJw8NDK1askK+vrxwcHBQUFKRz585ZHOu7775T+fLl5eDgoMKFC2vEiBG6f/++uf/EiROqVq2aHBwcVLJkSa1fv/6p57ts2TKVLl1ajo6OypEjh2rVqqVbt24pLCxM8+fP13fffSeTySSTyaTNmzdLkn799VfVqFHDvE3Xrl0VHx9v3mdISIiCg4M1ZswY5cuXT8WLF5ckLVy4UBUqVJCrq6s8PT31zjvv6PLlyxb1rFy50nwNqlevrvnz58tkMikuLs48Zvv27apataocHR1VsGBB9e7dW7du3XrqueLfKd2B7f379zVjxgxVqFBB3bp1U//+/S0eAAAAAAAAsF6Ojo66e/duuraZPHmyqlSpon379qlBgwZq27at2rVrp3fffVd79+5VkSJF1K5dOxmGYd7m9u3bGjNmjBYsWKCoqCjFxcWpVatW5v5t27apXbt26tOnjw4fPqxZs2Zp3rx5GjNmjCQpKSlJTZo0kZ2dnXbu3KmZM2dqyJAhT6zzwoULat26tTp27KgjR45o8+bNatKkiQzD0MCBA9WiRQvVrVtXFy5c0IULF/TGG2/o1q1bCgoKUrZs2bR7924tXbpUGzZsUM+ePS32vXHjRh07dkzr16/X6tWrJT1YPnTUqFGKjo7WihUrdPr0aYuwOzY2Vs2aNVNwcLCio6PVrVs3DRs2zGK/MTExqlu3rpo2baoDBw7o66+/1vbt21McHy+PdC9WcvDgQZUvX16SdPz4cYs+k8mUMVUBAAAAAAAgQxmGoY0bN2rt2rXq1atXuratX7++unXrJkkaPny4ZsyYoYoVK6p58+aSpCFDhqhy5cq6dOmSPD09JT0IM6dNm6bXXntNkjR//nz5+flp165dqlSpkkaMGKGhQ4eqffv2kqTChQtr1KhRGjx4sEJDQ7VhwwYdPXpUa9euVb58+SRJY8eOVb169R5b54ULF3T//n01adJEXl5ekqTSpUub+x0dHXXnzh1zjcl1JSQkaMGCBXJ2dpYkTZs2TY0aNdL48eOVJ08eSZKzs7PmzJljsRRCx44dzX8uXLiwPv30U1WsWFHx8fFycXHRrFmzVLx4cX388ceSpOLFi+vgwYPmUFqSxo0bpzZt2phnOvv6+urTTz9VQECAZsyYIQcHh7S9SPjXSHdgu2nTphdRBwAAAAAAAF6A1atXy8XFRffu3VNSUpLeeecdhYWFpWsfZcqUMf85OcB8OAhNbrt8+bI5DM2aNasqVqxoHlOiRAl5eHjoyJEjqlSpkqKjoxUVFWURXiYmJiohIUG3b9/WkSNHVLBgQXNYK0mVK1d+Yp1ly5ZVzZo1Vbp0aQUFBalOnTpq1qyZsmXL9thtjhw5orJly5rDWkmqUqWKkpKSdOzYMYvzfXTd2l9++UVhYWGKjo7Wn3/+qaSkJEnS2bNnVbJkSR07dsziGkhSpUqVLJ5HR0frwIEDioiIMLcZhqGkpCTFxsbKz8/vieeMf59nvh3gyZMnFRMTo2rVqsnR0VGGYTDDFgAAAAAAwMpUr15dM2bMkJ2dnfLly6esWf8vDsqSJYvFMgbSg5mxj7K1tTX/OTn/Sa0tObBMi/j4eI0YMUJNmjRJ0fess0ptbGy0fv167dixQ+vWrdNnn32mYcOGaefOnfLx8XmmfSZ7ONCVZF5KISgoSBEREcqVK5fOnj2roKCgdC05ER8fr27duql3794p+goVKvRcNeOfKd1r2F69elU1a9ZUsWLFVL9+fV24cEGS1KlTJw0YMCDDCwQAAAAAAMCzc3Z2VtGiRVWoUCGLsFaScuXKZc52pAczXA8ePJghx71//77FjciOHTumuLg484zR8uXL69ixYypatGiKR5YsWeTn56dz585Z1Pfzzz8/9bgmk0lVqlTRiBEjtG/fPtnZ2el///ufJMnOzk6JiYkW4/38/BQdHW1xk6+oqChlyZLFfHOx1Bw9elRXr17VRx99pKpVq6pEiRIpbjhWvHhxi2sgSbt377Z4Xr58eR0+fDjV6/DojF68HNId2Pbr10+2trY6e/asnJyczO0tW7ZUZGRkhhYHAAAAAACAF6dGjRr6/vvv9f333+vo0aN67733FBcXlyH7trW1Va9evbRz50798ssvCgkJ0euvv25eEmD48OFasGCBRowYoUOHDunIkSP66quv9N///leSVKtWLRUrVkzt27dXdHS0tm3bluKGXY/auXOnxo4dqz179ujs2bNavny5rly5Yg6Jvb29deDAAR07dkx//PGH7t27pzZt2sjBwUHt27fXwYMHtWnTJvXq1Utt27Y1L4eQmkKFCsnOzk6fffaZTp06pZUrV2rUqFEWY7p166ajR49qyJAhOn78uL755hvNmzdP0v/NSh4yZIh27Nihnj17av/+/Tpx4oS+++47bjr2Ekv3kgjr1q3T2rVrVaBAAYt2X19fnTlzJsMKAwAAAAAA+CfoOalRZpfwzDp27Kjo6Gi1a9dOWbNmVb9+/VS9evUM2beTk5OGDBmid955R+fPn1fVqlU1d+5cc39QUJBWr16tkSNHavz48bK1tVWJEiXUuXNnSQ+Wa/jf//6nTp06qVKlSvL29tann36qunXrPvaYbm5u2rp1q6ZMmaIbN27Iy8tLkyZNMt+orEuXLtq8ebMqVKig+Ph4bdq0SYGBgVq7dq369OmjihUrysnJSU2bNtUnn3zyxPPLlSuX5s2bpw8++ECffvqpypcvr4kTJ+qtt94yj/Hx8dGyZcs0YMAATZ06VZUrV9awYcP03nvvyd7eXtKD9YG3bNmiYcOGqWrVqjIMQ0WKFFHLli2f+drjn81kPLpQyVO4urpq79698vX1laurq6Kjo1W4cGHt2bNHQUFBunr16ouqFS+ZGzduyN3dXd9XfkPOWZ95ueWnCti65YXtGwAAAADwz5H8/9Dr16/Lzc3Noi8hIUGxsbHy8fF55vVVXybz5s1T3759M2y27r/JmDFjNHPmTJ07dy6zS8HfLK2fI+leEqFq1apasGCB+bnJZFJSUpImTJiQYb+BAQAAAAAAAP4Npk+frt27d+vUqVNauHChPv74Y7Vv3z6zy4IVS/e0xQkTJqhmzZras2eP7t69q8GDB+vQoUO6du2aoqKiXkSNAAAAAAAAwD/SiRMnNHr0aF27dk2FChXSgAED9P7772d2WbBi6V4SQZKuX7+uadOmKTo6WvHx8Spfvrx69OihvHnzvoga8ZJiSQQAAAAAwN+JJREAvEhp/Rx5phTM3d39qXflAwAAAAAAAACkzzMFtnFxcdq1a5cuX76spKQki7527dplSGEAAAAAAADW5hm+qAwAktL++ZHuwHbVqlVq06aN4uPj5ebmJpPJZO4zmUwEtgAAAAAA4F/H1tZWknT79m05OjpmcjUA/olu374t6f8+Tx4n3YHtgAED1LFjR40dO1ZOTk7PVh0AAAAAAMA/iI2NjTw8PHT58mVJkpOTk8UkNgB4HMMwdPv2bV2+fFkeHh6ysbF54vh0B7bnz59X7969CWsBAAAAAMBLxdPTU5LMoS0ApIeHh4f5c+RJ0h3YBgUFac+ePSpcuPAzFQYAAAAAAPBPZDL9v/buPEjq8k78+Gc4ZhiEGWC5I3IEREUQRSUTE8GFDYgbUNzSEFZxdTWorGZjXE9EN7VqYjAeUcpsItSmDChZUBMNrhceBDUYEAgEgaAkG44NyhXlnOf3h0X/bLmGgMxDeL2quoru7zPf+UzPU93wtu0uiTZt2kTLli1j69attT0OcAipX7/+Xl9Zu8M+B9uzzjorrr322liwYEF07959p/dcGDx48L6eEgAAAOCQUbdu3RqHF4B9VZL28eMN69Sps/uTlZTE9u3b93soiIhYv359VFZWxlNVn48j6u3zf1uosT4vv/SpnRsAAIBDx45/h65bty4qKipqexzgMLXPFay6uvrTmAMAAAAA4LC3+5fLAgAAAABwUNU42A4aNCjWrVtXuH7nnXfG2rVrC9fXrFkTxx133AEdDgAAAADgcFLjYPvMM8/E5s2bC9dvv/32eO+99wrXt23bFosWLTqw0wEAAAAAHEZqHGw/+dlk+/hZZQAAAAAA7IX3sAUAAAAAyESNg21JSUmUlJTsdBsAAAAAAAdGvZouTCnFRRddFGVlZRERsWnTphg5cmQcccQRERFF728LAAAAAMC+q3GwHTFiRNH1f/zHf9xpzYUXXrj/EwEAAAAAHKZqHGzHjx//ac4BAAAAAHDY86FjAAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQiXq1PQDszW9OuirKyxru8tiosV8+yNMAAAAAwKfHK2wBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADJRr7YHgL352u1nRkVFRW2PAQAAAACfOq+wBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAmBFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AAAAAACZEGwBAAAAADIh2AIAAAAAZEKwBQAAAADIhGALAAAAAJAJwRYAAAAAIBOCLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE4ItAAAAAEAm6tX2ALA7KaWIiFi/fn0tTwIAAMDhYMe/P3f8exSgNgi2ZGvNmjUREdGuXbtangQAAIDDyYYNG6KysrK2xwAOU4It2WrWrFlERCxfvtwTJX+R9evXR7t27eL3v/99VFRU1PY4HKLsI/aXPcT+sofYX/YQ++tw2kMppdiwYUO0bdu2tkcBDmOCLdmqU+ejt1iurKz8q/9LAZ+uiooKe4j9Zh+xv+wh9pc9xP6yh9hfh8se8oIhoLb50DEAAAAAgEwItgAAAAAAmRBsyVZZWVmMGTMmysrKansUDlH2EAeCfcT+sofYX/YQ+8seYn/ZQwAHV0lKKdX2EAAAAAAAeIUtAAAAAEA2BFsAAAAAgEwItgAAAAAAmRBsAQAAAAAyIdiSrQceeCA6dOgQDRo0iN69e8cbb7xR2yPxKbv11lujpKSk6HLMMccUjm/atCmuvPLK+Ju/+Zto1KhRnHvuubFq1aqicyxfvjzOOuusaNiwYbRs2TKuvfba2LZtW9Ga6dOnx0knnRRlZWXRuXPnmDBhwk6z2H+Hjpdffjm+/OUvR9u2baOkpCQef/zxouMppbjllluiTZs2UV5eHv3794/FixcXrXnvvfdi+PDhUVFREU2aNIlLLrkkNm7cWLRm7ty58cUvfjEaNGgQ7dq1i+985zs7zTJ58uQ45phjokGDBtG9e/d4+umn93kWDr697aGLLrpop8emgQMHFq2xhw5vd9xxR5xyyinRuHHjaNmyZZx99tmxaNGiojU5PYfVZBYOrprsob59++70WDRy5MiiNfbQ4WvcuHHRo0ePqKioiIqKiqiqqopf/OIXheMegwAOMQkyNGnSpFRaWpoefvjh9Jvf/CZdeumlqUmTJmnVqlW1PRqfojFjxqRu3bqlFStWFC7/93//Vzg+cuTI1K5du/T888+nWbNmpc997nPp85//fOH4tm3b0vHHH5/69++fZs+enZ5++unUvHnzdMMNNxTW/O53v0sNGzZM3/jGN9KCBQvS/fffn+rWrZumTZtWWGP/HVqefvrpdNNNN6UpU6akiEhTp04tOn7nnXemysrK9Pjjj6e33norDR48OHXs2DF9+OGHhTUDBw5MJ5xwQnrttdfSK6+8kjp37pyGDRtWOL5u3brUqlWrNHz48DR//vw0ceLEVF5enh566KHCmhkzZqS6deum73znO2nBggXp5ptvTvXr10/z5s3bp1k4+Pa2h0aMGJEGDhxY9Nj03nvvFa2xhw5vAwYMSOPHj0/z589Pc+bMSYMGDUpHHXVU2rhxY2FNTs9he5uFg68me6hPnz7p0ksvLXosWrduXeG4PXR4e/LJJ9NTTz2V3n777bRo0aJ04403pvr166f58+enlDwGARxqBFuydOqpp6Yrr7yycH379u2pbdu26Y477qjFqfi0jRkzJp1wwgm7PLZ27dpUv379NHny5MJtCxcuTBGRZs6cmVL6KLrUqVMnrVy5srBm3LhxqaKiIm3evDmllNK//du/pW7duhWd+/zzz08DBgwoXLf/Dl2fjG3V1dWpdevW6a677irctnbt2lRWVpYmTpyYUkppwYIFKSLSr371q8KaX/ziF6mkpCT97//+b0oppQcffDA1bdq0sI9SSum6665LXbt2LVw/77zz0llnnVU0T+/evdPXvva1Gs9C7dtdsB0yZMhuv8Ye4pNWr16dIiK99NJLKaW8nsNqMgu175N7KKWPgu3VV1+926+xh/ikpk2bph/+8IcegwAOQd4Sgexs2bIl3nzzzejfv3/htjp16kT//v1j5syZtTgZB8PixYujbdu20alTpxg+fHgsX748IiLefPPN2Lp1a9G+OOaYY+Koo44q7IuZM2dG9+7do1WrVoU1AwYMiPXr18dvfvObwpqPn2PHmh3nsP/+uixbtixWrlxZ9PusrKyM3r17F+2bJk2axMknn1xY079//6hTp068/vrrhTWnn356lJaWFtYMGDAgFi1aFO+//35hzZ72Vk1mIV/Tp0+Pli1bRteuXePyyy+PNWvWFI7ZQ3zSunXrIiKiWbNmEZHXc1hNZqH2fXIP7fDII49E8+bN4/jjj48bbrghPvjgg8Ixe4gdtm/fHpMmTYo///nPUVVV5TEI4BBUr7YHgE/605/+FNu3by/6y0JERKtWreK3v/1tLU3FwdC7d++YMGFCdO3aNVasWBG33XZbfPGLX4z58+fHypUro7S0NJo0aVL0Na1atYqVK1dGRMTKlSt3uW92HNvTmvXr18eHH34Y77//vv33V2TH731Xv8+P74mWLVsWHa9Xr140a9asaE3Hjh13OseOY02bNt3t3vr4OfY2C3kaOHBgDB06NDp27BhLly6NG2+8Mc4888yYOXNm1K1b1x6iSHV1dXz961+P0047LY4//viIiKyew2oyC7VrV3soIuKrX/1qtG/fPtq2bRtz586N6667LhYtWhRTpkyJCHuIiHnz5kVVVVVs2rQpGjVqFFOnTo3jjjsu5syZ4zEI4BAj2ALZOPPMMwt/7tGjR/Tu3Tvat28fjz32WJSXl9fiZMDh7Ctf+Urhz927d48ePXrEZz/72Zg+fXr069evFicjR1deeWXMnz8/Xn311doehUPU7vbQZZddVvhz9+7do02bNtGvX79YunRpfPaznz3YY5Khrl27xpw5c2LdunXx05/+NEaMGBEvvfRSbY8FwF/AWyKQnebNm0fdunV3+qTQVatWRevWrWtpKmpDkyZN4uijj44lS5ZE69atY8uWLbF27dqiNR/fF61bt97lvtlxbE9rKioqory83P77K7Pjd7an32fr1q1j9erVRce3bdsW77333gHZWx8/vrdZODR06tQpmjdvHkuWLIkIe4j/b9SoUfHzn/88XnzxxTjyyCMLt+f0HFaTWag9u9tDu9K7d++IiKLHInvo8FZaWhqdO3eOXr16xR133BEnnHBC3HvvvR6DAA5Bgi3ZKS0tjV69esXzzz9fuK26ujqef/75qKqqqsXJONg2btwYS5cujTZt2kSvXr2ifv36Rfti0aJFsXz58sK+qKqqinnz5hWFk2effTYqKiriuOOOK6z5+Dl2rNlxDvvvr0vHjh2jdevWRb/P9evXx+uvv160b9auXRtvvvlmYc0LL7wQ1dXVhX8MV1VVxcsvvxxbt24trHn22Weja9eu0bRp08KaPe2tmszCoeEPf/hDrFmzJtq0aRMR9hARKaUYNWpUTJ06NV544YWd3v4ip+ewmszCwbe3PbQrc+bMiYgoeiyyh/i46urq2Lx5s8cggENRbX/qGezKpEmTUllZWZowYUJasGBBuuyyy1KTJk2KPrWUvz7XXHNNmj59elq2bFmaMWNG6t+/f2revHlavXp1SimlkSNHpqOOOiq98MILadasWamqqipVVVUVvn7btm3p+OOPT1/60pfSnDlz0rRp01KLFi3SDTfcUFjzu9/9LjVs2DBde+21aeHChemBBx5IdevWTdOmTSussf8OLRs2bEizZ89Os2fPThGR7r777jR79uz07rvvppRSuvPOO1OTJk3SE088kebOnZuGDBmSOnbsmD788MPCOQYOHJhOPPHE9Prrr6dXX301denSJQ0bNqxwfO3atalVq1bpggsuSPPnz0+TJk1KDRs2TA899FBhzYwZM1K9evXSd7/73bRw4cI0ZsyYVL9+/TRv3rzCmprMwsG3pz20YcOG9M1vfjPNnDkzLVu2LD333HPppJNOSl26dEmbNm0qnMMeOrxdfvnlqbKyMk2fPj2tWLGicPnggw8Ka3J6DtvbLBx8e9tDS5YsSf/+7/+eZs2alZYtW5aeeOKJ1KlTp3T66acXzmEPHd6uv/769NJLL6Vly5aluXPnpuuvvz6VlJSk//mf/0kpeQwCONQItmTr/vvvT0cddVQqLS1Np556anrttddqeyQ+Zeeff35q06ZNKi0tTZ/5zGfS+eefn5YsWVI4/uGHH6YrrrgiNW3aNDVs2DCdc845acWKFUXneOedd9KZZ56ZysvLU/PmzdM111yTtm7dWrTmxRdfTD179kylpaWpU6dOafz48TvNYv8dOl588cUUETtdRowYkVJKqbq6Oo0ePTq1atUqlZWVpX79+qVFixYVnWPNmjVp2LBhqVGjRqmioiL90z/9U9qwYUPRmrfeeit94QtfSGVlZekzn/lMuvPOO3ea5bHHHktHH310Ki0tTd26dUtPPfVU0fGazMLBt6c99MEHH6QvfelLqUWLFql+/fqpffv26dJLL93pP+DYQ4e3Xe2fiCh6fsnpOawms3Bw7W0PLV++PJ1++umpWbNmqaysLHXu3Dlde+21ad26dUXnsYcOXxdffHFq3759Ki0tTS1atEj9+vUrxNqUPAYBHGpKUkrp4L2eFwAAAACA3fEetgAAAAAAmRBsAQAAAAAyIdgCAAAAAGRCsAUAAAAAyIRgCwAAAACQCcEWAAAAACATgi0AAAAAQCYEWwAAAACATAi2AMBhr6SkJB5//PFaP8dfqm/fvvH1r3/9gJ3voosuirPPPvuAna+2dejQIe65557aHgMAAGpEsAUAslFSUrLHy6233rrbr33nnXeipKQk5syZc8Dnuuiii3Y5z8CBAw/499phXwLwlClT4lvf+tanNsuupJTiBz/4QfTu3TsaNWoUTZo0iZNPPjnuueee+OCDDw7qLHvzq1/9Ki677LLC9dqM6wAAsDf1ansAAIAdVqxYUfjzo48+GrfcckssWrSocFujRo1qY6yIiBg4cGCMHz++6LaysrJamuYjW7ZsidLS0mjWrNlB/94XXHBBTJkyJW6++eb4/ve/Hy1atIi33nor7rnnnujQoUNWr9Bt0aJFbY8AAAA15hW2AEA2WrduXbhUVlZGSUlJ4XrLli3j7rvvjiOPPDLKysqiZ8+eMW3atMLXduzYMSIiTjzxxCgpKYm+fftGxEevrvy7v/u7aN68eVRWVkafPn3i17/+9T7PVlZWVjRf69ato2nTprtd//vf/z7OO++8aNKkSTRr1iyGDBkS77zzTtGahx9+OLp16xZlZWXRpk2bGDVqVER89L/wR0Scc845UVJSUrh+6623Rs+ePeOHP/xhdOzYMRo0aBARO78lwubNm+O6666Ldu3aRVlZWXTu3Dl+9KMfRUTE9u3b45JLLomOHTtGeXl5dO3aNe699959ui8ee+yxeOSRR2LixIlx4403ximnnBIdOnSIIUOGxAsvvBBnnHFGRNTsvi8pKYlx48bFmWeeGeXl5dGpU6f46U9/WrTmuuuui6OPPjoaNmwYnTp1itGjR8fWrVuL1vzsZz+LU045JRo0aBDNmzePc845p3Ds42+JsKv79p133ok6derErFmzis55zz33RPv27aO6unqf7h8AANgfgi0AcEi49957Y+zYsfHd73435s6dGwMGDIjBgwfH4sWLIyLijTfeiIiI5557LlasWBFTpkyJiIgNGzbEiBEj4tVXX43XXnstunTpEoMGDYoNGzZ8arNu3bo1BgwYEI0bN45XXnklZsyYEY0aNYqBAwfGli1bIiJi3LhxceWVV8Zll10W8+bNiyeffDI6d+4cER+FzoiI8ePHx4oVKwrXIyKWLFkS//3f/x1TpkzZ7ds/XHjhhTFx4sS47777YuHChfHQQw8VXp1cXV0dRx55ZEyePDkWLFgQt9xyS9x4443x2GOP1fjne+SRR6Jr164xZMiQnY6VlJREZWVlRNT8vh89enSce+658dZbb8Xw4cPjK1/5SixcuLBwvHHjxjFhwoRYsGBB3HvvvfGf//mf8b3vfa9w/KmnnopzzjknBg0aFLNnz47nn38+Tj311F3Ovqv7tkOHDtG/f/+dXkE9fvz4uOiii6JOHX9lBgDgIEoAABkaP358qqysLFxv27Zt+o//+I+iNaecckq64oorUkopLVu2LEVEmj179h7Pu3379tS4ceP0s5/9rHBbRKSpU6fu9mtGjBiR6tatm4444oiiy8fn+fg5fvzjH6euXbum6urqwvHNmzen8vLy9MwzzxR+nptuumm333NXM40ZMybVr18/rV69uuj2Pn36pKuvvjqllNKiRYtSRKRnn312T3dDkSuvvDKde+65RT/vkCFDdrv+2GOPTYMHD67x+XfY3X0/cuTIonW9e/dOl19++W7Pc9ddd6VevXoVrldVVaXhw4fvdn379u3T9773vaLv+cn79tFHH01NmzZNmzZtSiml9Oabb6aSkpK0bNmyGvxkAABw4Hi5AACQvfXr18cf//jHOO2004puP+2004peibkrq1atiksvvTS6dOkSlZWVUVFRERs3bozly5fv0wxnnHFGzJkzp+gycuTIXa596623YsmSJdG4ceNo1KhRNGrUKJo1axabNm2KpUuXxurVq+OPf/xj9OvXb59miIho3779Ht+Tdc6cOVG3bt3o06fPbtc88MAD0atXr2jRokU0atQofvCDH+zT/ZFSqtG6mt73VVVVO13/+O/10UcfjdNOOy1at24djRo1iptvvrnoHHPmzPmL7suPO/vss6Nu3boxderUiIiYMGFCnHHGGYW3UAAAgIPFh44BAH/VRowYEWvWrIl777032rdvH2VlZVFVVVV4a4KaOuKIIwpvWbA3GzdujF69esUjjzyy07EWLVrs1/9if8QRR+zxeHl5+R6PT5o0Kb75zW/G2LFjo6qqKho3bhx33XVXvP766zWe4eijj47f/va3e113IO77mTNnxvDhw+O2226LAQMGRGVlZUyaNCnGjh1bWLO3n7kmSktL48ILL4zx48fH0KFD4yc/+ck+v7cvAAAcCF5hCwBkr6KiItq2bRszZswoun3GjBlx3HHHRcRHwS3iow/V+uSaq666KgYNGlT4gK8//elPn+q8J510UixevDhatmwZnTt3LrpUVlZG48aNo0OHDvH888/v9hz169ff6Wepie7du0d1dXW89NJLuzw+Y8aM+PznPx9XXHFFnHjiidG5c+dYunTpPn2Pr371q/H222/HE088sdOxlFKsW7eu8L1qct+/9tprO10/9thjIyLil7/8ZbRv3z5uuummOPnkk6NLly7x7rvvFq3v0aPHHu/LT9rdffvP//zP8dxzz8WDDz4Y27Zti6FDh9b4nAAAcKAItgDAIeHaa6+Nb3/72/Hoo4/GokWL4vrrr485c+bE1VdfHRERLVu2jPLy8pg2bVqsWrWqEA27dOkSP/7xj2PhwoXx+uuvx/Dhw/+iV2Ru3rw5Vq5cWXTZXfgdPnx4NG/ePIYMGRKvvPJKLFu2LKZPnx5XXXVV/OEPf4iIiFtvvTXGjh0b9913XyxevDh+/etfx/333184x46gu3Llynj//fdrPGeHDh1ixIgRcfHFF8fjjz9e+N47PlSsS5cuMWvWrHjmmWfi7bffjtGjRxd9qFlNnHfeeXH++efHsGHD4vbbb49Zs2bFu+++Gz//+c+jf//+8eKLLxa+V03u+8mTJ8fDDz8cb7/9dowZMybeeOONGDVqVOEcy5cvj0mTJsXSpUvjvvvuK7xtwQ5jxoyJiRMnxpgxY2LhwoUxb968+Pa3v73H+2hX9+2xxx4bn/vc5+K6666LYcOGHZBX7gIAwL4SbAGAQ8JVV10V3/jGN+Kaa66J7t27x7Rp0+LJJ5+MLl26REREvXr14r777ouHHnoo2rZtG0OGDImIiB/96Efx/vvvx0knnRQXXHBBXHXVVdGyZct9/v7Tpk2LNm3aFF2+8IUv7HJtw4YN4+WXX46jjjoqhg4dGscee2xccsklsWnTpqioqIiIj94u4J577okHH3wwunXrFn//938fixcvLpxj7Nix8eyzz0a7du3ixBNP3KdZx40bF//wD/8QV1xxRRxzzDFx6aWXxp///OeIiPja174WQ4cOjfPPPz969+4da9asiSuuuGKfzl9SUhI/+clP4u67747HH388+vTpEz169Ihbb701hgwZEgMGDIiImt/3t912W0yaNCl69OgR//Vf/xUTJ04svHJ68ODB8a//+q8xatSo6NmzZ/zyl7+M0aNHF3193759Y/LkyfHkk09Gz54942//9m/jjTfe2O38e7pvL7nkktiyZUtcfPHF+3SfAADAgVKSavqpEQAAcICVlJTE1KlT4+yzz67tUSIi4lvf+lZMnjw55s6dW9ujAABwmPIKWwAADnsbN26M+fPnx/e///34l3/5l9oeBwCAw5hgCwDAYW/UqFHRq1ev6Nu3r7dDAACgVnlLBAAAAACATHiFLQAAAABAJgRbAAAAAIBMCLYAAAAAAJkQbAEAAAAAMiHYAgAAAABkQrAFAAAAAMiEYAsAAAAAkAnBFgAAAAAgE/8P5M3L0rJg2BMAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "import seaborn as sns\n", + "import matplotlib.pyplot as plt\n", + "\n", + "# Group by 'energy_source_level_1', 'energy_source_level_2', and 'technology' to sum the capacities\n", + "capacity_distribution = data.groupby(['energy_source_level_1', 'energy_source_level_2', 'technology'])['electrical_capacity'].sum().reset_index()\n", + "\n", + "# Pivot the data to prepare for the heatmap\n", + "pivot_data = capacity_distribution.pivot_table(values='electrical_capacity',\n", + " index=['energy_source_level_1', 'energy_source_level_2'],\n", + " columns='technology',\n", + " fill_value=0)\n", + "\n", + "# Create a heatmap\n", + "plt.figure(figsize=(12, 8))\n", + "sns.heatmap(pivot_data, cmap='viridis', annot=True, fmt=\".1f\", linewidths=0.5)\n", + "plt.title('Capacity Distribution by Energy Source and Technology')\n", + "plt.xlabel('Technology')\n", + "plt.ylabel('Energy Source (Level 1 & 2)')\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 928 + }, + "id": "VR6NgngJx0ig", + "outputId": "3971c717-e05d-4f21-fbbe-e945a55e04b5" + }, + "execution_count": 33, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "iVBORw0KGgoAAAANSUhEUgAABHAAAAOPCAYAAACjFTaYAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/bCgiHAAAACXBIWXMAAA9hAAAPYQGoP6dpAAD9NUlEQVR4nOzdd3xO5//H8fedyCCRhCJihliJPUpDiR2r5Wtvsau2mlW7pLSKVkttilZDW0WF2LOtvWvEqhGjBDGC3Of3h1/uuiUi0ZC7vJ593I+H+5zrnPM55z456f3J57ouk2EYhgAAAAAAAGCz7FI6AAAAAAAAACSMBA4AAAAAAICNI4EDAAAAAABg40jgAAAAAAAA2DgSOAAAAAAAADaOBA4AAAAAAICNI4EDAAAAAABg40jgAAAAAAAA2DgSOAAAAAAAADaOBA4A4JVhMpk0fPjwlA4jXt7e3goKCnrhxzl9+rRMJpPmzJljWRYUFCRXV9cXfuxYKfU5vOzzBF6EihUrqmLFiikdhsWGDRtkMpm0ePHiFDm+LT/XAeBlI4EDAFB4eLg6d+6s3Llzy9nZWW5ubipXrpwmTZqku3fvpnR4z23btm0aPny4IiMjk3W/FStWlMlkkslkkp2dndzc3JQ/f361atVKYWFhyXacX3/91Wa/uNhybC+at7e35fN/8lWjRo2UDu+F27Jli2rWrKmsWbPK2dlZOXLk0DvvvKOFCxemdGivheHDhz/1/nv8ZUtJIABA8kiV0gEAAFLWihUr1KhRIzk5Oal169YqVKiQ7t+/ry1btqhfv346dOiQpk2bltJhJsrdu3eVKtU/v9q2bdumESNGKCgoSB4eHsl6rGzZsik4OFiSdPv2bZ04cUI//vij5s+fr8aNG2v+/PlycHCwtD969Kjs7JL2d5Nff/1VX331VZISJTlz5tTdu3etjv0iJBTbk5/Dq6hYsWL64IMP4izPkiVLCkTz8oSEhKhJkyYqVqyYevbsqXTp0unUqVPatGmTpk+frubNm6d0iK+8+vXrK0+ePJb3UVFR6tKli/73v/+pfv36luWenp4pER4A4AV6tf/vCgCQoFOnTqlp06bKmTOn1q1bJy8vL8u6rl276sSJE1qxYkUKRpg0zs7OL+1Y7u7uatmypdWyTz75RD169NDXX38tb29vjR071rLOycnphcbz8OFDmc1mOTo6vtTrEJ+UPv7LkDVr1jiff0owDEP37t1T6tSpX8rxhg8fLj8/P/32229ydHS0Wnf58uWXEsPjbt++LRcXl5d+3JRUpEgRFSlSxPL+6tWr6tKli4oUKWIT9yQA4MWhCxUAvMbGjRunqKgozZw50yp5EytPnjzq2bOn5f3s2bNVuXJlZcqUSU5OTvLz89OUKVPibOft7a06depo9erVKlasmJydneXn56cff/zRqt21a9fUt29fFS5cWK6urnJzc1PNmjW1b9++OPu8d++ehg8frnz58snZ2VleXl6qX7++wsPDLW0eHyth+PDh6tevnyQpV65clm4Fp0+fVkBAgIoWLRrvNcmfP78CAwOfffHiYW9vry+++EJ+fn6aPHmybty4YXVNHh8D58GDBxoxYoTy5s0rZ2dnvfHGG3r77bctXbCCgoL01VdfWc4r9iX9M87NZ599pokTJ8rHx0dOTk46fPhwvGPgxDp58qQCAwPl4uKiLFmyaOTIkTIMw7I+dqyLDRs2WG335D4Tii122ZOVOXv27FHNmjXl5uYmV1dXValSRb/99ptVmzlz5shkMmnr1q3q06ePMmbMKBcXF/3vf//TlStXnv0BJOI8DcOQt7e36tatG2e7e/fuyd3dXZ07d070sRISOybP+fPnVa9ePbm6uipjxozq27evYmJirNqazWZNnDhRBQsWlLOzszw9PdW5c2ddv37dql3sz9aqVatUqlQppU6dWt98840k6cyZM3r33Xfl4uKiTJkyqXfv3lq1apXVZzps2DA5ODjEez07deokDw8P3bt376nnFB4erjfffDNO8kaSMmXKZPX+9u3b+uCDD5Q9e3Y5OTkpf/78+uyzz6zuuYTu1yfvo9iuQ4cPH1bz5s2VLl06vf3225b18+fPV+nSpZUmTRqlS5dOFSpU0OrVq632uXLlSpUvX14uLi5KmzatateurUOHDj31fGMl9lkV+zP0ww8/aPTo0cqWLZucnZ1VpUoVnThxIs5+p02bJh8fH6VOnVqlS5fW5s2bnxlLYv35559q2LCh0qdPL2dnZ5UqVUq//PJLnHaRkZHq3bu3vL295eTkpGzZsql169a6evWqVTuz2fzMc6pYsaIKFSqkw4cPq1KlSkqTJo2yZs2qcePGxTnu5cuX1b59e3l6esrZ2VlFixbV3LlzE3VuiXmeSNL+/fsVEBCg1KlTK1u2bPr44481e/Zsy+8CSWrTpo0yZMigBw8exNm+evXqyp8/f6JiAoCXgQocAHiNLVu2TLlz51bZsmUT1X7KlCkqWLCg3n33XaVKlUrLli3T+++/L7PZrK5du1q1PX78uJo0aaL33ntPbdq00ezZs9WoUSOFhoaqWrVqkh590f7555/VqFEj5cqVS5cuXdI333yjgIAAHT582NIdJSYmRnXq1NHatWvVtGlT9ezZU7du3VJYWJgOHjwoHx+fOLHWr19fx44d03fffacJEyYoQ4YMkqSMGTOqVatW6tixow4ePKhChQpZttmxY4eOHTumjz766Lmup/QoidOsWTMNGTJEW7ZsUe3ateNtN3z4cAUHB6tDhw4qXbq0bt68qZ07d2r37t2qVq2aOnfurAsXLigsLEzffvttvPuYPXu27t27p06dOsnJyUnp06eX2WyOt21MTIxq1Kiht956S+PGjVNoaKiGDRumhw8fauTIkUk6x8TE9rhDhw6pfPnycnNzU//+/eXg4KBvvvlGFStW1MaNG1WmTBmr9t27d1e6dOk0bNgwnT59WhMnTlS3bt20aNGiZx7rWedpMpnUsmVLjRs3TteuXVP69Okt2y5btkw3b95MVBXDgwcP4nzBlSQXFxerapiYmBgFBgaqTJky+uyzz7RmzRqNHz9ePj4+6tKli6Vd586dNWfOHLVt21Y9evTQqVOnNHnyZO3Zs0dbt26N0x2vWbNm6ty5szp27Kj8+fPr9u3bqly5si5evKiePXsqc+bMWrhwodavX28VX6tWrTRy5EgtWrRI3bp1syy/f/++Fi9erAYNGiRYQZUzZ06tXbtW586dU7Zs2Z7azjAMvfvuu1q/fr3at2+vYsWKadWqVerXr5/Onz+vCRMmJHyBE9CoUSPlzZtXY8aMsSSDRowYoeHDh6ts2bIaOXKkHB0d9fvvv2vdunWqXr26JOnbb79VmzZtFBgYqLFjx+rOnTuaMmWK3n77be3Zs0fe3t5PPWZin1WxPvnkE9nZ2alv3766ceOGxo0bpxYtWuj333+3tJk5c6Y6d+6ssmXLqlevXjp58qTeffddpU+fXtmzZ3/u6yM9+pkrV66csmbNqoEDB8rFxUU//PCD6tWrpyVLluh///ufpEfdr8qXL68jR46oXbt2KlGihK5evapffvlF586dszw3E3tOknT9+nXVqFFD9evXV+PGjbV48WINGDBAhQsXVs2aNSU96mZZsWJFnThxQt26dVOuXLkUEhKioKAgRUZGWv3hIL5zS8zz5Pz586pUqZJMJpMGDRokFxcXzZgxI041ZKtWrTRv3jytWrVKderUsSyPiIjQunXrNGzYsH/1WQBAsjIAAK+lGzduGJKMunXrJnqbO3fuxFkWGBho5M6d22pZzpw5DUnGkiVLrI7n5eVlFC9e3LLs3r17RkxMjNW2p06dMpycnIyRI0dals2aNcuQZHz++edxjm82my3/lmQMGzbM8v7TTz81JBmnTp2y2iYyMtJwdnY2BgwYYLW8R48ehouLixEVFRXP2f8jICDAKFiw4FPX//TTT4YkY9KkSZZlOXPmNNq0aWN5X7RoUaN27doJHqdr165GfL+qT506ZUgy3NzcjMuXL8e7bvbs2ZZlbdq0MSQZ3bt3tywzm81G7dq1DUdHR+PKlSuGYRjG+vXrDUnG+vXrn7nPp8VmGHE/h3r16hmOjo5GeHi4ZdmFCxeMtGnTGhUqVLAsmz17tiHJqFq1qtXn2rt3b8Pe3t6IjIyM93hJPc+jR48akowpU6ZYbf/uu+8a3t7eVseOT+z9Hd8rODg4TjyP38uGYRjFixc3SpYsaXm/efNmQ5KxYMECq3ahoaFxlsceOzQ01Krt+PHjDUnGzz//bFl29+5do0CBAnE+U39/f6NMmTJW2//444/xfvZPmjlzpiHJcHR0NCpVqmQMGTLE2Lx5c5yf459//tmQZHz88cdWyxs2bGiYTCbjxIkThmHEf2/FevI+GjZsmCHJaNasmVW748ePG3Z2dsb//ve/OHHEfpa3bt0yPDw8jI4dO1qtj4iIMNzd3eMsf1Jin1WxP0O+vr5GdHS0ZfmkSZMMScaBAwcMwzCM+/fvG5kyZTKKFStm1W7atGmGJCMgICDBeB535cqVONeqSpUqRuHChY179+5ZlpnNZqNs2bJG3rx5LcuGDh1qSDJ+/PHHOPuNvXaJPSfDePRslGTMmzfPsiw6OtrInDmz0aBBA8uyiRMnGpKM+fPnW5bdv3/f8Pf3N1xdXY2bN29alj/v86R79+6GyWQy9uzZY1n2999/G+nTp7f6vRATE2Nky5bNaNKkidX5f/7554bJZDJOnjwZ59oAQEqhCxUAvKZu3rwpSUqbNm2it3m8suDGjRu6evWqAgICdPLkSavuQtKjwVxj/8orSW5ubmrdurX27NmjiIgISY/GhYkd2DcmJkZ///23XF1dlT9/fu3evduy7ZIlS5QhQwZ17949TkyPd91JLHd3d9WtW1ffffed5S/4MTExWrRokerVq/evx9SIncr61q1bT23j4eGhQ4cO6fjx4899nAYNGihjxoyJbv94xYXJZFK3bt10//59rVmz5rljeJaYmBitXr1a9erVU+7cuS3Lvby81Lx5c23ZssVyL8bq1KmT1edavnx5xcTE6MyZM4k65rPOM1++fCpTpowWLFhgaXft2jWtXLlSLVq0SNQ9VaZMGYWFhcV5NWvWLE7b9957z+p9+fLldfLkScv7kJAQubu7q1q1arp69arlVbJkSbm6usaposmVK1ecbn6hoaHKmjWr3n33XcsyZ2dndezYMU48rVu31u+//27V/XDBggXKnj27AgICEjzvdu3aKTQ0VBUrVtSWLVs0atQolS9fXnnz5tW2bdss7X799VfZ29urR48eVtt/8MEHMgxDK1euTPA4CXnyev78888ym80aOnRonIHCYz/LsLAwRUZGqlmzZlbX2N7eXmXKlIlzjZ+U2GdVrLZt21p1MytfvrwkWT73nTt36vLly3rvvfes2gUFBcnd3T2xlyJe165d07p169S4cWPdunXLcq5///23AgMDdfz4cZ0/f17So2dr0aJFrZ7VsZ78OXjWOcVydXW1qmJzdHRU6dKlrdr9+uuvypw5s9XPi4ODg3r06KGoqCht3Lgx3nNLyvMkNDRU/v7+KlasmKVd+vTp1aJFC6t92tnZqUWLFvrll1+sntkLFixQ2bJllStXrnhjAYCUQAIHAF5Tbm5ukhJOMjxp69atqlq1qlxcXOTh4aGMGTPqww8/lKQ4CZw8efLE+QKQL18+SbKMPWA2mzVhwgTlzZtXTk5OypAhgzJmzKj9+/db7S88PFz58+dP1pmNWrdurbNnz1rGnFizZo0uXbqkVq1a/et9R0VFSUo4OTZy5EhFRkYqX758Kly4sPr166f9+/cn6ThJ+WJhZ2dn9YVHivt5vAhXrlzRnTt34h1HwtfXV2azWX/99ZfV8hw5cli9T5cunSTFGQ8mPok9z9atW2vr1q2WpFBISIgePHiQ6M8/Q4YMqlq1apxXzpw5rdo5OzvHSbKlS5fO6lyOHz+u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JjuTjvzx7yYeAV51zz2I8S+//KKTJ09qzJgx6t27t44cOaLff/89OWN7KRo1aiR7e3t99dVXSps2rfr27avevXtr7ty5Cg8P1+7du/Xll19q7ty5id7n0KFDNW/ePI0YMUKHDh3SkSNH9P333+ujjz6ytKlQoYJu3bql5cuXW5I1FStW1IIFC+Tl5WXVhSlv3rz69ttvLde4RYsWcSpIJCkkJESzZs3SsWPHNGzYMP3xxx9xBhiO1bVrV127dk3NmjXTjh07FB4erlWrVqlt27aWwZWfNGDAAG3btk3dunXT3r17dfz4cS1duvSpx4hPixYtlCFDBtWtW1ebN2/WqVOntGHDBvXo0UPnzp176nbNmzeX2WxWp06ddOTIEa1atcoytk1sBZQk2dvbKygoSIMGDVLevHnjdCv7tzp06KC5c+fqyJEjljGOJMnV1VXt27dXv379tG7dOh08eFBBQUFP/cX1uA8++EBr167VqFGjdOzYMc2dO1eTJ09W3759n7qNk5OT3NzcrF50oZKWTFiuWh2qqFrrAOUokFU9pnSUs4uTVs1eL0nqP6eb2o1pbmn/0xcr9GaNYmrYp46y58+iVsMaKV8pHy2dHP//+OL1wz2FxFoycbl838qrZoP+pyw+mVWp2duq1bGqfvn6n88+bTpX+RT1Vk6/R+OjZcufRT5FvZXO00PSo79Knz70l9VLki6fvaqI05ct+5l5eKLK1funG3HIZ78ooElZ1exQRVl8Mqtu1xryf6ekfpmy6iWcOVISzyg8Tfcv26lK87cV3OpL3b11V+k83ZXO012Ozo8q5f/684LOH7+oXl93VP43feSV21MNetVWiaqFtfX/E4JvZEmnz9YM1eW/rmragPlyz+hm2U+sP37do3ylcqvF4PrKkiez8hT31gcz3lPE6Ss6sedRcib/mz6aeWC83siSznLsHaF71WtqJ+V/00d+ZfOp66S22rBou65dvP6SrxTw35LoCpzRo0crV65cat78n18CV69e1aeffqrAwEBduHBBixcvTtKXeVuQKlUqdevWTePGjVOXLl00atQoZcyYUcHBwTp58qQ8PDxUokQJffjhh4neZ2BgoJYvX66RI0dq7NixcnBwUIECBSwDDEtSunTpVLhwYV26dEkFCjwqca5QoYLMZnOcio2ZM2eqU6dOKlGihLJnz64xY8bE++V+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d++uEydOaNasWVqwYIG5KFC5cmXt3LlTMTHxLawBAQHKlCmT/P39JUlXrlxRcHCwqlSpIkm6d++e2rRpo507d2rPnj0qUKCA6tatq3v37llkGjRokBo1aqSgoCC1aNFCzZo108mTJxN97+Hh4apWrZq8vb114MAB+fn56dq1a2rSpMkzf1/BwcGqXbu2GjVqpKNHj2rZsmXauXOnunbtajFv/PjxKlu2rA4fPqwuXbqoc+fO5gJXVFSUfH195eLioh07digwMFDp0qVT7dq1LbpQtmzZotOnT2vTpk1as2aN7t69q/fee09eXl46dOiQRowYoX79+pnnm0wmtW/fXvPnz7fIMn/+fFWqVEmenp6Jvqds2bJpz549unTp0jPf9+TJkzV+/Hh9++23Onr0qHx9fVW/fn2dPXs20fmxsbHKmTOnli9frhMnTmjw4MH68ssv9fPPP1vM++d7xItJbZ9aBcvk06HNR81jcXFxOrT5qIq+nfj/ZBb1KahDW45ajB3YGKQiz5iPlIVzCkmJ8wnPc2LvWZWqUlQ5PLNKkvIV91Axn4Lav/Hvf/4mk0l953TSL5PX6dLJK//6nD71vOXilk4bf9jxzDnu+bKobE0vHd15+plz/sktm6veqV/mpR4D28DnFGD9XnoPnI0bN2rDhg3KmTOnxXiBAgWe+2XX2q1Zs0bp0qVTdHS0IiMjZWdnp6lTp0qSIiMjNWrUKG3evFk+Pj6SpHz58mnnzp2aNWuWKleubH6ekSNHmu/3799f9erV06NHj+Tk5KRhw4apf//+atOmjfk5RowYob59+2rIkCGqWLGi7t27p8OHD6tMmTLavn27+vTpY96E2N/fXzly5DAXHapVs6yEz549W66urgoICLDo5GncuLE+/vhjSdKIESO0adMmfffdd5o+fXqC38PUqVPl7e2tUaNGmcfmzZsnDw8PnTlzRgULJvwwHj16tFq0aKEePXpIij8XpkyZosqVK2vGjBnmfYTq1q2rLl26SJL69euniRMnatu2bSpUqJCWLVum2NhYzZkzRyaTSVJ8kcXV1VX+/v6qVauWJClt2rSaM2eOubg2c+ZMmUwmff/993JyclLRokV15coVdezY0Zyvbdu2Gjx4sPbt26dy5copKipKP/30U4KunKcNGTJEDRs2VJ48eVSwYEH5+Piobt26+vDDD2VnF1/3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ILVo0ULNmjXTyZMnE33v4eHhqlatmry9vXXgwAH5+fnp2rVratKkyTN/X8HBwapdu7YaNWqko0ePatmyZdq5c6e6du1qMW/8+PEqW7asDh8+rC5duqhz587mAldUVJR8fX3l4uKiHTt2KDAwUOnSpVPt2rUtOm22bNmi06dPa9OmTVqzZo3u3r2r9957T15eXjp06JBGjBihfv36meebTCa1b99e8+fPt8gyf/58VapUSZ6eCdtC06ZNqzfffFPbtm0zj/n7+6t69ep65513zOPnz59XSEiIuYDzrN/NqlWrtGbNGq1Zs0YBAQEaM2aM+XifPn0UEBCg3377TRs3bpS/v3+iRbjkKCZGWrtFevBIKlVMOn5Gioo2yafM33Py5ZayZ42zKOCcuyhNXyiN+VKyMyV83sdR0lP/6kqSHB2lP05KUfG1UgUdl8XrSFKFN2XxOrGxUr+R8UWiApara17I4yhp9SapYR3JlEhOWIfU9qlUp00lRdx5oPPH/kx0TjrXNKra+C2d3BesmOiYZz5X2vTOunf7/jOP+7asoICV+xX54MW7B/N7eahIufz6YxfLM21ZavvUKlgmnw5tPmoei4uL06HNR1X07YKJPqaoT0Ed2nLUYuzAxiAVecZ8pCycU0hqnFOA9XuBvyenHGvWrFG6dOkUHR2tyMhI2dnZaerUqZKkyMhIjRo1Sps3b5aPj48kKV++fNq5c6dmzZqlypUrm59n5MiR5vv9+/dXvXr19OjRIzk5OWnYsGHq37+/2rRpY36OESNGqG/fvhoyZIgqVqyoe/fu6fDhwypTpoy2b9+uPn36mDch9vf3V44cOcxFh2rVLKvhs2fPlqurqwICAiw6eRo3bqyPP/5YkjRixAht2rRJ3333naZPn57g9zB16lR5e3tr1KhR5rF58+bJw8NDZ86cUcGCCT+QR48erRYtWpg33i1QoICmTJmiypUra8aMGXJycpIk1a1bV126dJEk9evXTxMnTtS2bdtUqFAhLVu2TLGxsZozZ45M//9td/78+XJ1dZW/v79q1aolKb64MmfOHHNxbebMmTKZTPr+++/l5OSkokWL6sqVK+rYsaM5X9u2bTV48GDt27dP5cqVU1RUlH766acEXTlPq1q1qpYvj9/w5MSJE3r06JG8vb1VqVIl+fv7q127dvL395eTk5PefvvtZz5PbGys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\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "plt.figure(figsize=(10, 6))\n", + "sns.countplot(y='energy_source_level_2', data=data, order=data['energy_source_level_2'].value_counts().index)\n", + "plt.title('Frequency of Energy Sources (Level 2)')\n", + "plt.xlabel('Frequency')\n", + "plt.ylabel('Energy Source (Level 2)')\n", + "plt.show()\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 564 + }, + "id": "ZwOZYcB8ytNr", + "outputId": "e8becfd9-bee6-4c1b-ed87-f04cebf38e3c" + }, + "execution_count": 35, + "outputs": [ + { + "output_type": "display_data", + "data": { + "text/plain": [ + "
" + ], + "image/png": "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aeTIkTp27JimTJnitI3Zs2frwoULeuihh2S321WkSBFt2bJFbdq0UWhoqMaMGaP09HSNHTtWxYsXd1r2gQce0IABA7Rjxw6nS4s3btyoPXv26Pnnn89xnzMD8ueff67777//kmfajh8/rjvuuEPJyckaPHiwihYtqjlz5qh9+/b64osvdO+99+Y8uJdw6tQptW3bVt26dVOvXr1UsmRJpaen6+6779by5cvVrVs3DRkyRGfPntXSpUu1Y8cOVaxYUZI0cOBAxcTEqG/fvho8eLAOHDigd955R1u2bFFsbKy8vLx04sQJx+/OiBEjFBISooMHD+rLL7+8bG0//fSTatasKS8vL5f3Kze/XyVLllRkZKQ+++wzjRo1ymn5Tz/9VJ6enrr//vsluX5MXam//vpLfn5+WY6F4OBgVaxYUbGxsXriiSfcsi0AV5kBAOTJ7NmzjaRsP8YYs2LFCiPJhIeHm+TkZMdyGRkZpnLlyiYqKspkZGQ42pOTk02FChVMq1atHG0dO3Y0Pj4+5tChQ462nTt3Gk9PT/PvP+UHDhwwkszs2bOz1CnJjBo1yjHdv39/Exoaak6ePOnUr1u3biY4ONhRa2b91apVMykpKY5+b775ppFktm/fbowxJi0tzVSoUMGUK1fOnDlzxmmd/96/7t27m9KlS5v09HRH2+bNm3Os+986duxovL29zf79+x1tR48eNYGBgaZJkyZZxuHVV1+95Pr+3Tenz7p16xx9y5UrZySZ1atXO9pOnDhh7Ha7eeqppxxtL730kvH39zd79uxx2taIESOMp6eniYuLc9p2UFCQOXHihFPfe+65x/j5+ZkjR4442vbu3WsKFSrk9DOPj483Pj4+5plnnnFafvDgwcbf398kJSVdcv979+5tJJnChQube++910yePNns2rUrS7+hQ4caSWbNmjWOtrNnz5oKFSqY8uXLO36emb8PBw4ccFo+8zhasWKFoy0yMtJIMtOmTXPqO2vWLCPJvP7661nqyDyW1qxZYySZuXPnOs1fsmSJU/tXX31lJJmNGzdechyyU6ZMGdO5c+cs7Zn7eKl15vb3a/r06U6/R5mqV69umjdv7pjO7TFlTNbf9dzau3ev8fHxMQ888EC281u3bm2qVavm8noBXBu41BMA3OTdd9/V0qVLnT7/1qdPH/n6+jqmt27dqr1796pHjx46deqUTp48qZMnT+rcuXNq0aKFVq9erYyMDKWnp+v7779Xx44dVbZsWcfy1apVu+RlfJdijNGCBQt0zz33yBjj2PbJkycVFRWlhIQEbd682WmZvn37Ot131rhxY0n/XP4n/XMJ5oEDBzR06NAs99b9+9LE3r176+jRo1qxYoWjbe7cufL19VXnzp1zrDk9PV0//PCDOnbs6HSPUWhoqHr06KG1a9c6Lp+9Eg899FCWn9/SpUtVvXp1p37Vq1d37LskFS9eXFWqVHGMg/TPGbTGjRurcOHCTmPbsmVLpaena/Xq1U7r7Ny5s9OZvPT0dC1btkwdO3ZU6dKlHe2VKlVS27ZtnZYNDg5Whw4dNG/ePBljHMt/+umn6tixo/z9/S+537Nnz9Y777yjChUq6KuvvtKwYcNUrVo1tWjRwumy2++++04RERFq1KiRoy0gIEAPPfSQDh486Lg81VV2uz3L/WQLFixQsWLF9Pjjj2fpn3ksff755woODlarVq2cxrhevXoKCAhwHF+Zx+KiRYuUmprqUm2nTp1S4cKFXd4nV36/OnXqpEKFCunTTz91LL9jxw7t3LlTXbt2dbS5eky5Kjk5Wffff798fX1zfJJt5rYBXJ+41BMA3CQiIuKSD3f57xM/9+7dK+mfQJiThIQEpaSk6Pz586pcuXKW+VWqVNF3333ncq1///234uPj9f7772d5qEemEydOOE3/O3RKcnwhzryfKvPeq8s9ybRVq1YKDQ3V3Llz1aJFC2VkZGjevHnq0KGDAgMDL1lzcnKyqlSpkmVetWrVlJGRocOHDzsut3RV5cqVHfcxXcp/x0H6Zyz+fV/Z3r17tW3btiyXZWb679j+99g4ceKEzp8/r0qVKmVZNru23r1769NPP9WaNWvUpEkTLVu2TMePH9cDDzxw2f3x8PDQoEGDNGjQIJ06dUqxsbGaNm2aFi9erG7dumnNmjWSpEOHDmX7Lrdq1ao55l/JU2xvuummLA+y2b9/v6pUqeJ0ie1/7d27VwkJCVnuQ8yUOcaRkZHq3LmzxowZozfeeENNmzZVx44d1aNHD9nt9svWlxmmXeHK71exYsXUokULffbZZ3rppZck/XOZZ6FChdSpUydHf1ePKVekp6erW7du2rlzpxYvXuz0Pxv+zRjj9D9xAFxfCH4AcJX8+2yfJMcDGV599VXVrl0722UCAgKUkpKS623k9KUsPT0922336tUrx+BZq1Ytp2lPT89s+7n6xdjT01M9evTQjBkz9N577yk2NlZHjx69Jp6omRu5GYeMjAy1atVKTz/9dLZ9b775Zqfp/x4broqKilLJkiX18ccfq0mTJvr4449VqlSpXAXZfytatKjat2+v9u3bO+6bPHTokONewNzI7TGY6Ur3PSMjQyVKlNDcuXOznZ8ZkGw2m7744gv9/PPP+uabb/T999+rX79+eu211/Tzzz9f8v7PokWLZnlQTG5rk3L/+9WtWzf17dtXW7duVe3atfXZZ5+pRYsWTvcIu3pMuWLAgAFatGiR5s6dq+bNm+fY78yZM1keCAPg+kHwA4ACkvmAiqCgoEt+QS9evLh8fX0dZwj/bffu3U7TmWfh4uPjndoPHTqUZZ2BgYFKT093ORzkJHN/duzYcdl19u7dW6+99pq++eYbLV68WMWLF7/sZavFixeXn59fln2WpN9//10eHh4KCwu78h1wo4oVKyopKemKx7ZEiRLy8fHJ9qmp2bVlhumYmBi98sorWrhwoQYMGJBjSM2N+vXra9WqVTp27JjKlSuncuXK5Tj20v9/UExuj8FLqVixotavX6/U1NQcH6xSsWJFLVu2THfeeWeuwuPtt9+u22+/XePGjdMnn3yinj17av78+XrwwQdzXKZq1ao6cOBAruvO5OrvV8eOHTVw4EDH5Z579uzRyJEjnfrk9ZjKyfDhwzV79mxNmTJF3bt3v2TfAwcO5PgEWQDXPu7xA4ACUq9ePVWsWFGTJ09WUlJSlvmZ71Dz9PRUVFSUFi5cqLi4OMf8Xbt26fvvv3daJigoSMWKFctyv897773nNO3p6anOnTtrwYIF2rFjR47bdkXdunVVoUIFTZkyJcuX/v+eFaxVq5Zq1aqlDz74QAsWLFC3bt0ueVlfZs2tW7fW119/7fSqgOPHj+uTTz5Ro0aNFBQU5HLd+aFLly5at25dlp+P9E8gSktLu+Tynp6eatmypRYuXKijR4862vft26fFixdnu8wDDzygM2fOaODAgUpKSsrVGdS//vor23vzLl68qOXLl8vDw8NxaWm7du20YcMGrVu3ztHv3Llzev/991W+fHnHvZCZ/wPg38dgenp6jpc8Zqdz5846efKk06sMMmUeS126dFF6errj8sh/S0tLcxyDZ86cyXL8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3GT06NGqXbt2QZcBAAAAAFkQ/P7P33//rUceeURly5aV3W5XqVKlFBUVpdjY2IIuDQAAAADypFBBF3Ct6Ny5sy5evKg5c+YoPDxcx48f1/Lly3Xq1KmrVkNqaqq8vLyu2vYAAAAA3Bg44ycpPj5ea9as0SuvvKJmzZqpXLlyioiI0MiRI9W+fXtJUlxcnDp06KCAgAAFBQWpS5cuOn78eI7r3Lhxo1q1aqVixYopODhYkZGR2rx5s1Mfm82mqVOnqn379vL399e4cePydT8BAAAA3JgIfpICAgIUEBCghQsXKiUlJcv8jIwMdejQQadPn9aqVau0dOlS/fHHH+ratWuO6zx79qz69OmjtWvX6ueff1blypXVrl07nT171qnf6NGjde+992r79u3q169ftutKSUlRYmKi0wcAAAAAcotLPSUVKlRIMTExGjBggKZNm6a6desqMjJS3bp1U61atbR8+XJt375dBw4cUFhYmCTpww8/VI0aNbRx40bddtttWdbZvHlzp+n3339fISEhWrVqle6++25He48ePdS3b99L1jdhwgSNGTPGDXsKAAAA4EbEGb//07lzZx09elT/+9//1KZNG61cuVJ169ZVTEyMdu3apbCwMEfok6Tq1asrJCREu3btynZ9x48f14ABA1S5cmUFBwcrKChISUlJiouLc+pXv379y9Y2cuRIJSQkOD6HDx/O284CAAAAuKEQ/P7Fx8dHrVq10gsvvKCffvpJ0dHRGjVq1BWtq0+fPtq6davefPNN/fTTT9q6dauKFi2qixcvOvXz9/e/7LrsdruCgoKcPgAAAACQWwS/S6hevbrOnTunatWq6fDhw05n2nbu3Kn4+HhVr14922VjY2M1ePBgtWvXTjVq1JDdbtfJkyevVukAAAAA4MA9fpJOnTql+++/X/369VOtWrUUGBioTZs2adKkSerQoYNatmypW265RT179tSUKVOUlpamRx99VJGRkTleqlm5cmV99NFHql+/vhITEzV8+HD5+vpe5T0DAAAAAM74SfrnqZ4NGjTQG2+8oSZNmqhmzZp64YUXNGDAAL3zzjuy2Wz6+uuvVbhwYTVp0kQtW7ZUeHi4Pv300xzXOXPmTJ05c0Z169bVAw88oMGDB6tEiRJXca8AAAAA4B82Y4wp6CLgmsTERAUHB2vHyGoK9PEs6HIAABZQ9sXtBV0CAOAKZGaDhISESz4LhDN+AAAAAGBxBD8AAAAAsDiCHwAAAABYHMEPAAAAACyO4AcAAAAAFufye/xSUlK0fv16HTp0SMnJySpevLjq1KmjChUq5Ed9AAAAAIA8ynXwi42N1ZtvvqlvvvlGqampCg4Olq+vr06fPq2UlBSFh4froYce0sMPP6zAwMD8rBkAAAAA4IJcXerZvn17de3aVeXLl9cPP/ygs2fP6tSpU/rzzz+VnJysvXv36vnnn9fy5ct18803a+nSpfldNwAAAAAgl3J1xu+uu+7SggUL5OXlle388PBwhYeHq0+fPtq5c6eOHTvm1iIBAAAAAFcuV8Fv4MCBuV5h9erVVb169SsuCAAAAADgXjzVEwAAAAAszqXg995776lly5bq0qWLli9f7jTv5MmTCg8Pd2txAAAAAIC8y3Xwe+uttzR8+HBVrVpVdrtd7dq104QJExzz09PTdejQoXwpEgAAAABw5XL9Oofp06drxowZ6tGjhyTpkUceUceOHXX+/HmNHTs23woEAAAAAORNroPfgQMHdMcddzim77jjDv34449q2bKlUlNTNXTo0PyoDwAAAACQR7kOfsWKFdPhw4dVvnx5R1vNmjX1448/qnnz5jp69Gh+1AcAAAAAyKNc3+PXqFEjffnll1naq1evruXLl2vx4sVuLQwAAAAA4B65PuM3YsQI/fLLL9nOq1Gjhn788UctWLDAbYUBAAAAANwj18GvVq1aqlWrVo7za9asqZo1a7qlKAAAAACA+/ACdwAAAACwOIIfAAAAAFgcwQ8AAAAALI7gBwAAAAAWR/ADAAAAAIvL1VM969SpI5vNlqsVbt68OU8FAQAAAADcK1fBr2PHjvlcBgAAAAAgv+Qq+I0aNSq/6wAAAAAA5JMruscvPj5eH3zwgUaOHKnTp09L+ucSzyNHjri1OAAAAABA3uXqjN+/bdu2TS1btlRwcLAOHjyoAQMGqEiRIvryyy8VFxenDz/8MD/qBAAAAABcIZfP+D355JOKjo7W3r175ePj42hv166dVq9e7dbiAAAAAAB55/IZv40bN2r69OlZ2m+66Sb99ddfbikKuRM24mcFBQUVdBkAAAAArnEun/Gz2+1KTEzM0r5nzx4VL17cLUUBAAAAANzH5eDXvn17jR07VqmpqZIkm82muLg4PfPMM+rcubPbCwQAAAAA5I3Lwe+1115TUlKSSpQoofPnzysyMlKVKlVSYGCgxo0blx81AgAAAADywOV7/IKDg7V06VKtXbtW27ZtU1JSkurWrauWLVvmR30AAAAAgDyyGWOMKwscPnxYYWFh+VUPciExMVHBwcFKSEjg4S4AAADADSy32cDlSz3Lly+vyMhIzZgxQ2fOnMlTkQAAAACA/Ody8Nu0aZMiIiI0duxYhYaGqmPHjvriiy+UkpKSH/UBAAAAAPLI5eBXp04dvfrqq4qLi9PixYtVvHhxPfTQQypZsqT69euXHzUCAAAAAPLA5Xv8srN582b1799f27ZtU3p6ujvqwiVwjx8AAAAAKR/v8cv0559/atKkSapdu7YiIiIUEBCgd99990pXBwAAAADIJy6/zmH69On65JNPFBsbq6pVq6pnz576+uuvVa5cufyoDwAAAACQRy4Hv5dfflndu3fXW2+9pVtvvTU/agIAAAAAuJHLwS8uLk42my0/agEAAAAA5AOX7/Gz2Wxas2aNevXqpYYNG+rIkSOSpI8++khr1651e4EAAAAAgLxxOfgtWLBAUVFR8vX11ZYtWxzv70tISND48ePdXiAAAAAAIG9cDn4vv/yypk2bphkzZsjLy8vRfuedd2rz5s1uLQ4AAAAAkHcuB7/du3erSZMmWdqDg4MVHx/vjpoAAAAAAG7kcvArVaqU9u3bl6V97dq1Cg8Pd0tRAAAAAAD3cfmpngMGDNCQIUM0a9Ys2Ww2HT16VOvWrdOwYcP0wgsv5EeNyEGraa1UyNflHyFgWbGPxxZ0CQAAANckl1PDiBEjlJGRoRYtWig5OVlNmjSR3W7XsGHD9Pjjj+dHjQAAAACAPHA5+NlsNj333HMaPny49u3bp6SkJFWvXl0+Pj46evSoSpcunR91AgAAAACu0BVfJ+jt7a3q1as7pn/99VfVrVtX6enpbikMAAAAAOAeLj/cBQAAAABwfSH4AQAAAIDFEfwAAAAAwOJyfY/ftm3bLjl/9+7deS4GAAAAAOB+uQ5+tWvXls1mkzEmy7zMdpvN5tbiAAAAAAB5l+vgd+DAgfysAwAAAACQT3Id/MqVK5efdQAAAAAA8kmuHu4SFxfn0kqPHDlyRcUAAAAAANwvV8Hvtttu08CBA7Vx48Yc+yQkJGjGjBmqWbOmFixY4LYCAQAAAAB5k6tLPXfu3Klx48apVatW8vHxUb169VS6dGn5+PjozJkz2rlzp3777TfVrVtXkyZNUrt27fK7bgAAAABALtlMdo/pzMH58+f17bffau3atTp06JDOnz+vYsWKqU6dOoqKilLNmjXzs1b8n8TERAUHByvilQgV8s31bZqA5cU+HlvQJQAAAFxVmdkgISFBQUFBOfZzKTX4+vrqvvvu03333ZfnAgEAAAAAV0eu7vEDAAAAAFy/CH4AAAAAYHEEPwAAAACwOIIfAAAAAFgcwQ8AAAAALO6Kgt9HH32kO++8U6VLl9ahQ4ckSVOmTNHXX3/t1uIAAAAAAHnncvCbOnWqnnzySbVr107x8fFKT0+XJIWEhGjKlCnurg8AAAAAkEcuB7+3335bM2bM0HPPPSdPT09He/369bV9+3a3FgcAAAAAyDuXg9+BAwdUp06dLO12u13nzp1zS1EAAAAAAPdxOfhVqFBBW7duzdK+ZMkSVatWzR01AQAAAADcqJCrCzz55JMaNGiQLly4IGOMNmzYoHnz5mnChAn64IMP8qNGAAAAAEAeuBz8HnzwQfn6+ur5559XcnKyevToodKlS+vNN99Ut27d8qNGAAAAAEAeuBz8JKlnz57q2bOnkpOTlZSUpBIlSri7LgAAAACAm7gc/A4cOKC0tDRVrlxZfn5+8vPzkyTt3btXXl5eKl++vLtrBAAAAADkgcsPd4mOjtZPP/2UpX39+vWKjo52R00AAAAAADdyOfht2bJFd955Z5b222+/PdunfQIAAAAACpbLwc9ms+ns2bNZ2hMSEpSenu6WojIdPHhQNpuNQAkAAAAAeeBy8GvSpIkmTJjgFPLS09M1YcIENWrUyKV1RUdHy2azOT5FixZVmzZttG3bNklSWFiYjh07ppo1a7paJgAAAADg/7j8cJeJEycqMjJSVapUUePGjSVJa9asUWJion788UeXC2jTpo1mz54tSfrrr7/0/PPP6+6771ZcXJw8PT1VqlQpl9dZEFJTU+Xl5VXQZQAAAABAFi6f8atRo4a2bdumLl266MSJEzp79qx69+6t33///YrOzNntdpUqVUqlSpVS7dq1NWLECB0+fFh///13tpd6rlq1ShEREbLb7QoNDdWIESOUlpbmmJ+RkaEJEyaoQoUK8vX11a233qovvvjCMX/lypWy2Wxavny56tevLz8/P91xxx3avXu3U11ff/216tatKx8fH4WHh2vMmDFO27HZbJo6darat28vf39/jRs3TpL08ssvq0SJEgoMDNSDDz6oESNGqHbt2pKk1atXy8vLS3/99ZfTtoYOHeoI0QAAAADgbi4Fv9TUVLVo0ULnzp3T+PHj9e233+qLL77Qiy++qCJFiuS5mKSkJH388ceqVKmSihYtmmX+kSNH1K5dO91222369ddfNXXqVM2cOVMvv/yyo8+ECRP04Ycfatq0afrtt9/0xBNPqFevXlq1apXTup577jm99tpr2rRpkwoVKqR+/fo55q1Zs0a9e/fWkCFDtHPnTk2fPl0xMTGOcJdp9OjRuvfee7V9+3b169dPc+fO1bhx4/TKK6/ol19+UdmyZTV16lRH/yZNmig8PFwfffSR05jOnTvXafv/lZKSosTERKcPAAAAAOSWS5d6enl5Oe6/c5dFixYpICBAknTu3DmFhoZq0aJF8vDImknfe+89hYWF6Z133pHNZlPVqlV19OhRPfPMM3rxxReVmpqq8ePHa9myZWrYsKEkKTw8XGvXrtX06dMVGRnpWNe4ceMc0yNGjNBdd92lCxcuyMfHR2PGjNGIESPUp08fxzpeeuklPf300xo1apRjHT169FDfvn0d02+//bb69+/vaHvxxRf1ww8/KCkpydGnf//+mj17toYPHy5J+uabb3ThwgV16dIlxzGaMGGCxowZ49rAAgAAAMD/cflSz169emnmzJluK6BZs2baunWrtm7dqg0bNigqKkpt27bVoUOHsvTdtWuXGjZsKJvN5mi78847lZSUpD///FP79u1TcnKyWrVqpYCAAMfnww8/1P79+53WVatWLce/Q0NDJUknTpyQJP36668aO3as0zoGDBigY8eOKTk52bFc/fr1nda5e/duRUREOLX9dzo6Olr79u3Tzz//LEmKiYlRly5d5O/vn+MYjRw5UgkJCY7P4cOHc+wLAAAAAP/l8sNd0tLSNGvWLC1btkz16tXLElhef/11l9bn7++vSpUqOaY/+OADBQcHa8aMGXrwwQddWlfmmbVvv/1WN910k9M8u93uNP3vB7FkBsmMjAzHesaMGaNOnTpl2YaPj49T7a4qUaKE7rnnHs2ePVsVKlTQ4sWLtXLlyksuY7fbs9QPAAAAALnlcvDbsWOH6tatK0nas2eP07x/n4m7UjabTR4eHjp/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OWfPnq0mTZqoUqVKVzZgAICrgks9AQC4AosWLVJAQIBjum3btpKkypUra9KkSY72l19+WXXq1NH48eMdbbNmzVJYWJj27Nmj0qVLa+bMmfr444/VokULSf+ExzJlyrhUz6effqqMjAx98MEHstlskv4JZSEhIVq5cqVat24tSSpcuLDeeecdeXp6qmrVqrrrrru0fPlyDRgwQHv27NFnn32mpUuXqmXLlpKk8PBwxzaio6P14osvasOGDYqIiFBqaqo++eSTLGcBAQDXHoIfAABXoFmzZpo6dapj2t/fX927d1e9evWc+v36669asWKFU0jMtH//fp0/f14XL15UgwYNHO1FihRRlSpVXKrn119/1b59+xQYGOjUfuHCBe3fv98xXaNGDXl6ejqmQ0NDtX37dkn/XLbp6empyMjIbLdRunRp3XXXXZo1a5YiIiL0zTffKCUlRffff79LtQIArj6CHwAAV8Df3z/byxv9/f2dppOSknTPPffolVdeydI3NDQ01/fG2Ww2GWOc2v59b15SUpLq1aunuXPnZln23w+d8fLyyrLejIwMSZKvr+9l63jwwQf1wAMP6I033tDs2bPVtWtX+fn55WofAAAFh+AHAEA+qlu3rhYsWKDy5curUKGs/9mtWLGivLy8tH79epUtW1aSdObMGe3Zs8fpzFvx4sV17Ngxx/TevXuVnJzstJ1PP/1UJUqUUFBQ0BXVessttygjI0OrVq1yXOr5X+3atZO/v7+mTp2qJUuWaPXq1Ve0LQDA1cXDXQAAyEeDBg3S6dOn1b17d23cuFH79+/X999/r759+yo9PV0BAQHq37+/hg8frh9//FE7duxQdHS0PDyc/xPdvHlzvfPOO9qyZYs2bdqkhx9+2OnsXc+ePVWsWDF16NBBa9as0YEDB7Ry5UoNHjxYf/75Z65qLV++vPr06aN+/fpp4cKFjnV89tlnjj6enp6Kjo7WyJEjVblyZTVs2NA9AwUAyFcEPwAA8lHp0qUVGxur9PR0tW7dWrfccouGDh2qkJAQR7h79dVX1bhxY91zzz1q2bKlGjVqlOVewddee01hYWFq3LixevTooWHDhjldYunn56fVq1erbNmy6tSpk6pVq6b+/fvrwoULLp0BnDp1qu677z49+uijqlq1qgYMGKBz58459enfv78uXryovn375mFkAABXk83894YBAABQ4Jo2baratWtrypQpBV1KFmvWrFGLFi10+PBhlSxZsqDLAQDkAvf4AQCAXElJSdHff/+t0aNH6/777yf0AcB1hEs9AQBArsybN0/lypVTfHy807sKAQDXPi71BAAAAACL44wfAAAAAFgcwQ8AAAAALI7gBwAAAAAWR/ADAAAAAIsj+AEAAACAxRH8AAAAAMDiCH4AAAAAYHEEPwAAAACwuP8HkPMqlHM0i+gAAAAASUVORK5CYII=\n" + }, + "metadata": {} + } + ] + }, + { + "cell_type": "code", + "source": [ + "# Grouping and summing the 'electrical_capacity' column by 'energy_source_level_2'\n", + "sum_by_category = data.groupby('energy_source_level_2')['electrical_capacity'].sum()\n", + "\n", + "# Displaying the total sum for each category\n", + "print(sum_by_category)\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "EOdibSTc2btL", + "outputId": "830c65ff-2cfe-4e65-dc0c-6939da06c636" + }, + "execution_count": 36, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "energy_source_level_2\n", + "Bioenergy 6737.7\n", + "Hydro 3442.6\n", + "Marine 34.5\n", + "Solar 8473.3\n", + "Wind 318232.0\n", + "Name: electrical_capacity, dtype: float64\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "!pip install folium\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/" + }, + "id": "xHnssUi24SbQ", + "outputId": "9b03a11a-1dff-4afc-cf97-6cedfcaa19b5" + }, + "execution_count": 37, + "outputs": [ + { + "output_type": "stream", + "name": "stdout", + "text": [ + "Requirement already satisfied: folium in /usr/local/lib/python3.10/dist-packages (0.14.0)\n", + "Requirement already satisfied: branca>=0.6.0 in /usr/local/lib/python3.10/dist-packages (from folium) (0.7.0)\n", + "Requirement already satisfied: jinja2>=2.9 in /usr/local/lib/python3.10/dist-packages (from folium) (3.1.2)\n", + "Requirement already satisfied: numpy in /usr/local/lib/python3.10/dist-packages (from folium) (1.23.5)\n", + "Requirement already satisfied: requests in /usr/local/lib/python3.10/dist-packages (from folium) (2.31.0)\n", + "Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.10/dist-packages (from jinja2>=2.9->folium) (2.1.3)\n", + "Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.10/dist-packages (from requests->folium) (3.3.2)\n", + "Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.10/dist-packages (from requests->folium) (3.6)\n", + "Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.10/dist-packages (from requests->folium) (2.0.7)\n", + "Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.10/dist-packages (from requests->folium) (2023.11.17)\n" + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import folium\n", + "\n", + "# Create a base map\n", + "map_energy_infrastructure = folium.Map(location=[56.71457313,-4.963405811 ], zoom_start=5) # Use an appropriate starting location and zoom level\n", + "\n", + "# Add markers for each energy infrastructure location\n", + "for index, row in data.iterrows():\n", + " folium.Marker([row['lat'], row['lon']], popup=row['energy_source_level_2']).add_to(map_energy_infrastructure)\n", + "\n", + "# Display the map\n", + "map_energy_infrastructure\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 391 + }, + "id": "o7LIBKsy4ZAJ", + "outputId": "3b791baf-7fca-4fe6-e14d-832e627627f4" + }, + "execution_count": 39, + "outputs": [ + { + "output_type": "error", + "ename": "ValueError", + "evalue": "Location values cannot contain NaNs.", + "traceback": [ + "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", + "\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)", + "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m()\u001b[0m\n\u001b[1;32m 6\u001b[0m \u001b[0;31m# Add markers for each energy infrastructure location\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mindex\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mdata\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0miterrows\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 8\u001b[0;31m \u001b[0mfolium\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mMarker\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'lat'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'lon'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mpopup\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrow\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'energy_source_level_2'\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0madd_to\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap_energy_infrastructure\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 9\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 10\u001b[0m \u001b[0;31m# Display the map\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/folium/map.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, location, popup, tooltip, icon, draggable, **kwargs)\u001b[0m\n\u001b[1;32m 324\u001b[0m \u001b[0msuper\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m__init__\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 325\u001b[0m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0m_name\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m\"Marker\"\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 326\u001b[0;31m \u001b[0mself\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mlocation\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mvalidate_location\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlocation\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlocation\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mnot\u001b[0m \u001b[0;32mNone\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 327\u001b[0m self.options = parse_options(\n\u001b[1;32m 328\u001b[0m \u001b[0mdraggable\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdraggable\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mautoPan\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdraggable\u001b[0m \u001b[0;32mor\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;32m/usr/local/lib/python3.10/dist-packages/folium/utilities.py\u001b[0m in \u001b[0;36mvalidate_location\u001b[0;34m(location)\u001b[0m\n\u001b[1;32m 76\u001b[0m )\n\u001b[1;32m 77\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mmath\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0misnan\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcoord\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 78\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"Location values cannot contain NaNs.\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 79\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0mfloat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32mfor\u001b[0m \u001b[0mx\u001b[0m \u001b[0;32min\u001b[0m \u001b[0mcoords\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 80\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", + "\u001b[0;31mValueError\u001b[0m: Location values cannot contain NaNs." + ] + } + ] + }, + { + "cell_type": "code", + "source": [ + "import folium\n", + "\n", + "# Filter out rows with missing latitude or longitude values\n", + "filtered_data = data.dropna(subset=['lat', 'lon'])\n", + "\n", + "# Create a base map\n", + "map_energy_infrastructure = folium.Map(location=[51.5074, -0.1278], zoom_start=5) # Use an appropriate starting location and zoom level\n", + "\n", + "# Add markers for each energy infrastructure location\n", + "for index, row in filtered_data.iterrows():\n", + " folium.Marker([row['lat'], row['lon']], popup=row['energy_source_level_2']).add_to(map_energy_infrastructure)\n", + "\n", + "# Display the map\n", + "map_energy_infrastructure\n" + ], + "metadata": { + "id": "hp16uLd95Ia1" + }, + "execution_count": null, + "outputs": [] + }, + { + "cell_type": "code", + "source": [ + "import folium\n", + "\n", + "# Filter out rows with missing latitude or longitude values\n", + "filtered_data = data.dropna(subset=['lat', 'lon'])\n", + "\n", + "# Create a base map\n", + "map_energy_infrastructure = folium.Map(location=[51.5074, -0.1278], zoom_start=5) # Use an appropriate starting location and zoom level\n", + "\n", + "# Define unique categories in 'energy_source_level_2'\n", + "categories = filtered_data['energy_source_level_2'].unique()\n", + "\n", + "# Assign different colors to each category\n", + "colors = ['red', 'blue', 'green', 'orange', 'purple'] # Add more colors as needed\n", + "\n", + "# Add markers for each energy infrastructure location with different colors based on category\n", + "for index, row in filtered_data.iterrows():\n", + " category = row['energy_source_level_2']\n", + " color = colors[list(categories).index(category) % len(colors)] # Assign colors cyclically to categories\n", + " folium.CircleMarker([row['lat'], row['lon']], color=color, fill=True, fill_color=color, radius=5, popup=category).add_to(map_energy_infrastructure)\n", + "\n", + "# Display the map\n", + "map_energy_infrastructure\n" + ], + "metadata": { + "colab": { + "base_uri": "https://localhost:8080/", + "height": 711 + }, + "id": "Y6hkKZZP5umX", + "outputId": "b1c6ed42-1168-42d9-a413-683c6467bd9e" + }, + "execution_count": 41, + "outputs": [ + { + "output_type": "execute_result", + "data": { + "text/plain": [ + "" + ], + "text/html": [ + "
Make this Notebook Trusted to load map: File -> Trust Notebook
" + ] + }, + "metadata": {}, + "execution_count": 41 + } + ] + }, + { + "cell_type": "code", + "source": [], + "metadata": { + "id": "_-tOAt355Oi4" + }, + "execution_count": null, + "outputs": [] + } + ] +} \ No newline at end of file