diff --git a/[lab_customer_analysis_round5] leonardo_pagliacci.ipynb b/[lab_customer_analysis_round5] leonardo_pagliacci.ipynb
new file mode 100644
index 0000000..ae9b5f8
--- /dev/null
+++ b/[lab_customer_analysis_round5] leonardo_pagliacci.ipynb
@@ -0,0 +1,784 @@
+{
+ "cells": [
+ {
+ "cell_type": "markdown",
+ "id": "bc9713bb",
+ "metadata": {},
+ "source": [
+ "# Lab | Customer Analysis Round 5\n",
+ "\n",
+ "For this lab, we still keep using the `marketing_customer_analysis.csv` file that you can find in the `files_for_lab` folder.\n",
+ "\n",
+ "### Get the data\n",
+ "\n",
+ "We are using the `marketing_customer_analysis.csv` file.\n",
+ "\n",
+ "### Dealing with the data\n",
+ "\n",
+ "Already done in the round 2.\n",
+ "\n",
+ "### Explore the data\n",
+ "\n",
+ "Done in the round 3.\n",
+ "\n",
+ "### Processing Data\n",
+ "\n",
+ "(_Further processing..._)\n",
+ "\n",
+ "- X-y split.\n",
+ "- Normalize (numerical).\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 41,
+ "id": "332f3c58",
+ "metadata": {},
+ "outputs": [],
+ "source": [
+ "# Importing the libraries\n",
+ "\n",
+ "import pandas as pd\n",
+ "\n",
+ "import numpy as np\n",
+ "\n",
+ "import warnings\n",
+ "warnings.filterwarnings('ignore')\n",
+ "\n",
+ "import matplotlib.pyplot as plt\n",
+ "%matplotlib inline\n",
+ "\n",
+ "import seaborn as sns"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 42,
+ "id": "0112f86c",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "
\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer | \n",
+ " state | \n",
+ " customer_lifetime_value | \n",
+ " response | \n",
+ " coverage | \n",
+ " education | \n",
+ " effective_to_date | \n",
+ " employmentstatus | \n",
+ " gender | \n",
+ " income | \n",
+ " ... | \n",
+ " months_since_policy_inception | \n",
+ " number_of_open_complaints | \n",
+ " number_of_policies | \n",
+ " policy_type | \n",
+ " policy | \n",
+ " renew_offer_type | \n",
+ " sales_channel | \n",
+ " total_claim_amount | \n",
+ " vehicle_class | \n",
+ " vehicle_size | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " DK49336 | \n",
+ " Arizona | \n",
+ " 4809.216960 | \n",
+ " No | \n",
+ " Basic | \n",
+ " College | \n",
+ " 2/18/11 | \n",
+ " Employed | \n",
+ " M | \n",
+ " 48029 | \n",
+ " ... | \n",
+ " 52 | \n",
+ " 0.0 | \n",
+ " 9 | \n",
+ " Corporate Auto | \n",
+ " Corporate L3 | \n",
+ " Offer3 | \n",
+ " Agent | \n",
+ " 292.800000 | \n",
+ " Four-Door Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " KX64629 | \n",
+ " California | \n",
+ " 2228.525238 | \n",
+ " No | \n",
+ " Basic | \n",
+ " College | \n",
+ " 1/18/11 | \n",
+ " Unemployed | \n",
+ " F | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 26 | \n",
+ " 0.0 | \n",
+ " 1 | \n",
+ " Personal Auto | \n",
+ " Personal L3 | \n",
+ " Offer4 | \n",
+ " Call Center | \n",
+ " 744.924331 | \n",
+ " Four-Door Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " LZ68649 | \n",
+ " Washington | \n",
+ " 14947.917300 | \n",
+ " No | \n",
+ " Basic | \n",
+ " Bachelor | \n",
+ " 2/10/11 | \n",
+ " Employed | \n",
+ " M | \n",
+ " 22139 | \n",
+ " ... | \n",
+ " 31 | \n",
+ " 0.0 | \n",
+ " 2 | \n",
+ " Personal Auto | \n",
+ " Personal L3 | \n",
+ " Offer3 | \n",
+ " Call Center | \n",
+ " 480.000000 | \n",
+ " SUV | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " XL78013 | \n",
+ " Oregon | \n",
+ " 22332.439460 | \n",
+ " Yes | \n",
+ " Extended | \n",
+ " College | \n",
+ " 1/11/11 | \n",
+ " Employed | \n",
+ " M | \n",
+ " 49078 | \n",
+ " ... | \n",
+ " 3 | \n",
+ " 0.0 | \n",
+ " 2 | \n",
+ " Corporate Auto | \n",
+ " Corporate L3 | \n",
+ " Offer2 | \n",
+ " Branch | \n",
+ " 484.013411 | \n",
+ " Four-Door Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " QA50777 | \n",
+ " Oregon | \n",
+ " 9025.067525 | \n",
+ " No | \n",
+ " Premium | \n",
+ " Bachelor | \n",
+ " 1/17/11 | \n",
+ " Medical Leave | \n",
+ " F | \n",
+ " 23675 | \n",
+ " ... | \n",
+ " 31 | \n",
+ " NaN | \n",
+ " 7 | \n",
+ " Personal Auto | \n",
+ " Personal L2 | \n",
+ " Offer1 | \n",
+ " Branch | \n",
+ " 707.925645 | \n",
+ " Four-Door Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 10905 | \n",
+ " FE99816 | \n",
+ " Nevada | \n",
+ " 15563.369440 | \n",
+ " No | \n",
+ " Premium | \n",
+ " Bachelor | \n",
+ " 1/19/11 | \n",
+ " Unemployed | \n",
+ " F | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 40 | \n",
+ " NaN | \n",
+ " 7 | \n",
+ " Personal Auto | \n",
+ " Personal L1 | \n",
+ " Offer3 | \n",
+ " Web | \n",
+ " 1214.400000 | \n",
+ " Luxury Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 10906 | \n",
+ " KX53892 | \n",
+ " Oregon | \n",
+ " 5259.444853 | \n",
+ " No | \n",
+ " Basic | \n",
+ " College | \n",
+ " 1/6/11 | \n",
+ " Employed | \n",
+ " F | \n",
+ " 61146 | \n",
+ " ... | \n",
+ " 68 | \n",
+ " 0.0 | \n",
+ " 6 | \n",
+ " Personal Auto | \n",
+ " Personal L3 | \n",
+ " Offer2 | \n",
+ " Branch | \n",
+ " 273.018929 | \n",
+ " Four-Door Car | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 10907 | \n",
+ " TL39050 | \n",
+ " Arizona | \n",
+ " 23893.304100 | \n",
+ " No | \n",
+ " Extended | \n",
+ " Bachelor | \n",
+ " 2/6/11 | \n",
+ " Employed | \n",
+ " F | \n",
+ " 39837 | \n",
+ " ... | \n",
+ " 63 | \n",
+ " 0.0 | \n",
+ " 2 | \n",
+ " Corporate Auto | \n",
+ " Corporate L3 | \n",
+ " Offer1 | \n",
+ " Web | \n",
+ " 381.306996 | \n",
+ " Luxury SUV | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 10908 | \n",
+ " WA60547 | \n",
+ " California | \n",
+ " 11971.977650 | \n",
+ " No | \n",
+ " Premium | \n",
+ " College | \n",
+ " 2/13/11 | \n",
+ " Employed | \n",
+ " F | \n",
+ " 64195 | \n",
+ " ... | \n",
+ " 27 | \n",
+ " 4.0 | \n",
+ " 6 | \n",
+ " Personal Auto | \n",
+ " Personal L1 | \n",
+ " Offer1 | \n",
+ " Branch | \n",
+ " 618.288849 | \n",
+ " SUV | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ " | 10909 | \n",
+ " IV32877 | \n",
+ " NaN | \n",
+ " 6857.519928 | \n",
+ " NaN | \n",
+ " Basic | \n",
+ " Bachelor | \n",
+ " 1/8/11 | \n",
+ " Unemployed | \n",
+ " M | \n",
+ " 0 | \n",
+ " ... | \n",
+ " 1 | \n",
+ " 0.0 | \n",
+ " 3 | \n",
+ " Personal Auto | \n",
+ " Personal L1 | \n",
+ " Offer4 | \n",
+ " Web | \n",
+ " 1021.719397 | \n",
+ " SUV | \n",
+ " Medsize | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10910 rows × 24 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer state customer_lifetime_value response coverage \\\n",
+ "0 DK49336 Arizona 4809.216960 No Basic \n",
+ "1 KX64629 California 2228.525238 No Basic \n",
+ "2 LZ68649 Washington 14947.917300 No Basic \n",
+ "3 XL78013 Oregon 22332.439460 Yes Extended \n",
+ "4 QA50777 Oregon 9025.067525 No Premium \n",
+ "... ... ... ... ... ... \n",
+ "10905 FE99816 Nevada 15563.369440 No Premium \n",
+ "10906 KX53892 Oregon 5259.444853 No Basic \n",
+ "10907 TL39050 Arizona 23893.304100 No Extended \n",
+ "10908 WA60547 California 11971.977650 No Premium \n",
+ "10909 IV32877 NaN 6857.519928 NaN Basic \n",
+ "\n",
+ " education effective_to_date employmentstatus gender income ... \\\n",
+ "0 College 2/18/11 Employed M 48029 ... \n",
+ "1 College 1/18/11 Unemployed F 0 ... \n",
+ "2 Bachelor 2/10/11 Employed M 22139 ... \n",
+ "3 College 1/11/11 Employed M 49078 ... \n",
+ "4 Bachelor 1/17/11 Medical Leave F 23675 ... \n",
+ "... ... ... ... ... ... ... \n",
+ "10905 Bachelor 1/19/11 Unemployed F 0 ... \n",
+ "10906 College 1/6/11 Employed F 61146 ... \n",
+ "10907 Bachelor 2/6/11 Employed F 39837 ... \n",
+ "10908 College 2/13/11 Employed F 64195 ... \n",
+ "10909 Bachelor 1/8/11 Unemployed M 0 ... \n",
+ "\n",
+ " months_since_policy_inception number_of_open_complaints \\\n",
+ "0 52 0.0 \n",
+ "1 26 0.0 \n",
+ "2 31 0.0 \n",
+ "3 3 0.0 \n",
+ "4 31 NaN \n",
+ "... ... ... \n",
+ "10905 40 NaN \n",
+ "10906 68 0.0 \n",
+ "10907 63 0.0 \n",
+ "10908 27 4.0 \n",
+ "10909 1 0.0 \n",
+ "\n",
+ " number_of_policies policy_type policy renew_offer_type \\\n",
+ "0 9 Corporate Auto Corporate L3 Offer3 \n",
+ "1 1 Personal Auto Personal L3 Offer4 \n",
+ "2 2 Personal Auto Personal L3 Offer3 \n",
+ "3 2 Corporate Auto Corporate L3 Offer2 \n",
+ "4 7 Personal Auto Personal L2 Offer1 \n",
+ "... ... ... ... ... \n",
+ "10905 7 Personal Auto Personal L1 Offer3 \n",
+ "10906 6 Personal Auto Personal L3 Offer2 \n",
+ "10907 2 Corporate Auto Corporate L3 Offer1 \n",
+ "10908 6 Personal Auto Personal L1 Offer1 \n",
+ "10909 3 Personal Auto Personal L1 Offer4 \n",
+ "\n",
+ " sales_channel total_claim_amount vehicle_class vehicle_size \n",
+ "0 Agent 292.800000 Four-Door Car Medsize \n",
+ "1 Call Center 744.924331 Four-Door Car Medsize \n",
+ "2 Call Center 480.000000 SUV Medsize \n",
+ "3 Branch 484.013411 Four-Door Car Medsize \n",
+ "4 Branch 707.925645 Four-Door Car Medsize \n",
+ "... ... ... ... ... \n",
+ "10905 Web 1214.400000 Luxury Car Medsize \n",
+ "10906 Branch 273.018929 Four-Door Car Medsize \n",
+ "10907 Web 381.306996 Luxury SUV Medsize \n",
+ "10908 Branch 618.288849 SUV Medsize \n",
+ "10909 Web 1021.719397 SUV Medsize \n",
+ "\n",
+ "[10910 rows x 24 columns]"
+ ]
+ },
+ "execution_count": 42,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# Importing the dataframe\n",
+ "\n",
+ "customer_df = pd.read_csv(\"/Users/leozinho.air/Desktop/ironhack_da/class_04/lab-customer-analysis-round-2/files_for_lab/csv_files/marketing_customer_analysis.csv\")\n",
+ "\n",
+ "# Cleaning operations\n",
+ "\n",
+ "columns = []\n",
+ "\n",
+ "for i in range(len(customer_df.columns)):\n",
+ " columns.append(customer_df.columns[i].lower().replace(' ', '_'))\n",
+ "\n",
+ "customer_df.columns = columns\n",
+ "\n",
+ "customer_df\n",
+ "\n",
+ "# Dropping the column 'unnamed:_0'\n",
+ "\n",
+ "customer_df = customer_df.drop(['unnamed:_0'], axis = 1)\n",
+ "\n",
+ "# The only values are Nan or vehicle class 'A', let's create a new df without the column.\n",
+ "\n",
+ "customer_df = customer_df.drop(['vehicle_type'], axis = 1)\n",
+ "\n",
+ "customer_df"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 43,
+ "id": "958cdaf7",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "0"
+ ]
+ },
+ "execution_count": 43,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# This is for predictions\n",
+ "from sklearn import linear_model\n",
+ "from sklearn.metrics import mean_squared_error, r2_score\n",
+ "\n",
+ "# These Libs are for stats -> this ones are for description\n",
+ "import statsmodels.api as sm\n",
+ "from statsmodels.formula.api import ols\n",
+ "\n",
+ "# Creating a dataframe with only numerical values\n",
+ "\n",
+ "num_cust = customer_df.select_dtypes(include = np.number)\n",
+ "\n",
+ "# Checking for null values\n",
+ "\n",
+ "num_cust.isnull().any() # Two columns have nan values\n",
+ "\n",
+ "# I chose to fill the nan valus with the means of the two columns\n",
+ "\n",
+ "mean_months = num_cust['months_since_last_claim'].mean()\n",
+ "\n",
+ "num_cust['months_since_last_claim'].fillna(value = mean_months, inplace = True)\n",
+ "\n",
+ "\n",
+ "mean_complaints = num_cust['number_of_open_complaints'].mean()\n",
+ "num_cust['number_of_open_complaints'].fillna(value = mean_complaints, inplace = True)\n",
+ "\n",
+ "num_cust.isnull().sum().sum() # There are no nan values\n",
+ "\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 44,
+ "id": "95c51d22",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/html": [
+ "\n",
+ "\n",
+ "
\n",
+ " \n",
+ " \n",
+ " | \n",
+ " customer_lifetime_value | \n",
+ " income | \n",
+ " monthly_premium_auto | \n",
+ " months_since_last_claim | \n",
+ " months_since_policy_inception | \n",
+ " number_of_open_complaints | \n",
+ " number_of_policies | \n",
+ " total_claim_amount | \n",
+ "
\n",
+ " \n",
+ " \n",
+ " \n",
+ " | 0 | \n",
+ " 0.035752 | \n",
+ " 0.480381 | \n",
+ " 0.000000 | \n",
+ " 0.200000 | \n",
+ " 0.525253 | \n",
+ " 0.000000 | \n",
+ " 1.000 | \n",
+ " 0.101171 | \n",
+ "
\n",
+ " \n",
+ " | 1 | \n",
+ " 0.004059 | \n",
+ " 0.000000 | \n",
+ " 0.012658 | \n",
+ " 0.085714 | \n",
+ " 0.262626 | \n",
+ " 0.000000 | \n",
+ " 0.000 | \n",
+ " 0.257445 | \n",
+ "
\n",
+ " \n",
+ " | 2 | \n",
+ " 0.160264 | \n",
+ " 0.221432 | \n",
+ " 0.164557 | \n",
+ " 0.971429 | \n",
+ " 0.313131 | \n",
+ " 0.000000 | \n",
+ " 0.125 | \n",
+ " 0.165875 | \n",
+ "
\n",
+ " \n",
+ " | 3 | \n",
+ " 0.250953 | \n",
+ " 0.490873 | \n",
+ " 0.151899 | \n",
+ " 0.285714 | \n",
+ " 0.030303 | \n",
+ " 0.000000 | \n",
+ " 0.125 | \n",
+ " 0.167263 | \n",
+ "
\n",
+ " \n",
+ " | 4 | \n",
+ " 0.087527 | \n",
+ " 0.236795 | \n",
+ " 0.236287 | \n",
+ " 0.432831 | \n",
+ " 0.313131 | \n",
+ " 0.076851 | \n",
+ " 0.750 | \n",
+ " 0.244657 | \n",
+ "
\n",
+ " \n",
+ " | ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ " ... | \n",
+ "
\n",
+ " \n",
+ " | 10905 | \n",
+ " 0.167823 | \n",
+ " 0.000000 | \n",
+ " 0.810127 | \n",
+ " 0.432831 | \n",
+ " 0.404040 | \n",
+ " 0.076851 | \n",
+ " 0.750 | \n",
+ " 0.419717 | \n",
+ "
\n",
+ " \n",
+ " | 10906 | \n",
+ " 0.041281 | \n",
+ " 0.611576 | \n",
+ " 0.016878 | \n",
+ " 0.200000 | \n",
+ " 0.686869 | \n",
+ " 0.000000 | \n",
+ " 0.625 | \n",
+ " 0.094333 | \n",
+ "
\n",
+ " \n",
+ " | 10907 | \n",
+ " 0.270122 | \n",
+ " 0.398446 | \n",
+ " 0.590717 | \n",
+ " 0.314286 | \n",
+ " 0.636364 | \n",
+ " 0.000000 | \n",
+ " 0.125 | \n",
+ " 0.131763 | \n",
+ "
\n",
+ " \n",
+ " | 10908 | \n",
+ " 0.123717 | \n",
+ " 0.642072 | \n",
+ " 0.409283 | \n",
+ " 0.000000 | \n",
+ " 0.272727 | \n",
+ " 0.800000 | \n",
+ " 0.625 | \n",
+ " 0.213674 | \n",
+ "
\n",
+ " \n",
+ " | 10909 | \n",
+ " 0.060907 | \n",
+ " 0.000000 | \n",
+ " 0.168776 | \n",
+ " 0.885714 | \n",
+ " 0.010101 | \n",
+ " 0.000000 | \n",
+ " 0.250 | \n",
+ " 0.353118 | \n",
+ "
\n",
+ " \n",
+ "
\n",
+ "
10910 rows × 8 columns
\n",
+ "
"
+ ],
+ "text/plain": [
+ " customer_lifetime_value income monthly_premium_auto \\\n",
+ "0 0.035752 0.480381 0.000000 \n",
+ "1 0.004059 0.000000 0.012658 \n",
+ "2 0.160264 0.221432 0.164557 \n",
+ "3 0.250953 0.490873 0.151899 \n",
+ "4 0.087527 0.236795 0.236287 \n",
+ "... ... ... ... \n",
+ "10905 0.167823 0.000000 0.810127 \n",
+ "10906 0.041281 0.611576 0.016878 \n",
+ "10907 0.270122 0.398446 0.590717 \n",
+ "10908 0.123717 0.642072 0.409283 \n",
+ "10909 0.060907 0.000000 0.168776 \n",
+ "\n",
+ " months_since_last_claim months_since_policy_inception \\\n",
+ "0 0.200000 0.525253 \n",
+ "1 0.085714 0.262626 \n",
+ "2 0.971429 0.313131 \n",
+ "3 0.285714 0.030303 \n",
+ "4 0.432831 0.313131 \n",
+ "... ... ... \n",
+ "10905 0.432831 0.404040 \n",
+ "10906 0.200000 0.686869 \n",
+ "10907 0.314286 0.636364 \n",
+ "10908 0.000000 0.272727 \n",
+ "10909 0.885714 0.010101 \n",
+ "\n",
+ " number_of_open_complaints number_of_policies total_claim_amount \n",
+ "0 0.000000 1.000 0.101171 \n",
+ "1 0.000000 0.000 0.257445 \n",
+ "2 0.000000 0.125 0.165875 \n",
+ "3 0.000000 0.125 0.167263 \n",
+ "4 0.076851 0.750 0.244657 \n",
+ "... ... ... ... \n",
+ "10905 0.076851 0.750 0.419717 \n",
+ "10906 0.000000 0.625 0.094333 \n",
+ "10907 0.000000 0.125 0.131763 \n",
+ "10908 0.800000 0.625 0.213674 \n",
+ "10909 0.000000 0.250 0.353118 \n",
+ "\n",
+ "[10910 rows x 8 columns]"
+ ]
+ },
+ "execution_count": 44,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "# X-y split.\n",
+ "\n",
+ "Y = customer_df['total_claim_amount']\n",
+ "X = customer_df.drop(['total_claim_amount'], axis = 1)\n",
+ "\n",
+ "# Normalizing the DataFrame\n",
+ "\n",
+ "from sklearn.preprocessing import MinMaxScaler\n",
+ "\n",
+ "scaler = MinMaxScaler() # This is the normalization process\n",
+ "\n",
+ "normalized_data = scaler.fit_transform(num_cust) # Fit it to the data\n",
+ "normalized_data = pd.DataFrame(normalized_data, columns = num_cust.columns)\n",
+ "\n",
+ "normalized_data"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": null,
+ "id": "0ccdae9d",
+ "metadata": {},
+ "outputs": [],
+ "source": []
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3 (ipykernel)",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 3
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython3",
+ "version": "3.11.4"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}