993 lines
37 KiB
Plaintext
993 lines
37 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 144,
|
|
"id": "59e7fd1c-b4a6-40b6-9d14-b471cabcdcc5",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"import sketch\n",
|
|
"import pandas as pd\n",
|
|
"import os\n",
|
|
"\n",
|
|
"os.environ['SKETCH_MAX_COLUMNS'] = '40'"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 155,
|
|
"id": "ec1df080-81d8-4e93-8fe8-6893026af6df",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"cust_data = pd.read_csv(\"/Users/normrasmussen/Downloads/churned_analysis.csv\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 156,
|
|
"id": "3c724cbb-74a9-4727-8826-ebf58afa29ad",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>OrgID</th>\n",
|
|
" <th>Organization</th>\n",
|
|
" <th>Churn Date</th>\n",
|
|
" <th>2022-01</th>\n",
|
|
" <th>2022-02</th>\n",
|
|
" <th>2022-03</th>\n",
|
|
" <th>2022-04</th>\n",
|
|
" <th>2022-05</th>\n",
|
|
" <th>2022-06</th>\n",
|
|
" <th>2022-07</th>\n",
|
|
" <th>2022-08</th>\n",
|
|
" <th>2022-09</th>\n",
|
|
" <th>2022-10</th>\n",
|
|
" <th>2022-11</th>\n",
|
|
" <th>2022-12</th>\n",
|
|
" <th>2023-01</th>\n",
|
|
" <th>2023-02</th>\n",
|
|
" <th>2023-03</th>\n",
|
|
" <th>2023-04</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>30867753</td>\n",
|
|
" <td>Aquent</td>\n",
|
|
" <td>2023-04</td>\n",
|
|
" <td>58</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>43.0</td>\n",
|
|
" <td>27.0</td>\n",
|
|
" <td>24.0</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>8.0</td>\n",
|
|
" <td>10.0</td>\n",
|
|
" <td>2.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>33375202</td>\n",
|
|
" <td>BioLife Solutions, Inc.</td>\n",
|
|
" <td>2023-04</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>30867495</td>\n",
|
|
" <td>ZyXel Communications Inc</td>\n",
|
|
" <td>2023-04</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>32999202</td>\n",
|
|
" <td>BrightLine Eating Solutions LLC</td>\n",
|
|
" <td>2023-03</td>\n",
|
|
" <td>10,362</td>\n",
|
|
" <td>7,890</td>\n",
|
|
" <td>7,272</td>\n",
|
|
" <td>8,177</td>\n",
|
|
" <td>8,468</td>\n",
|
|
" <td>7,524</td>\n",
|
|
" <td>8,509</td>\n",
|
|
" <td>5,638</td>\n",
|
|
" <td>581.0</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>30867752</td>\n",
|
|
" <td>Casio America Inc</td>\n",
|
|
" <td>2023-03</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" <td>NaN</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" OrgID Organization Churn Date 2022-01 2022-02 \n",
|
|
"0 30867753 Aquent 2023-04 58 38 \\\n",
|
|
"1 33375202 BioLife Solutions, Inc. 2023-04 11 7 \n",
|
|
"2 30867495 ZyXel Communications Inc 2023-04 1 1 \n",
|
|
"3 32999202 BrightLine Eating Solutions LLC 2023-03 10,362 7,890 \n",
|
|
"4 30867752 Casio America Inc 2023-03 NaN NaN \n",
|
|
"\n",
|
|
" 2022-03 2022-04 2022-05 2022-06 2022-07 2022-08 2022-09 2022-10 2022-11 \n",
|
|
"0 50 50 39 36 46 46 43.0 27.0 24.0 \\\n",
|
|
"1 4 11 4 NaN NaN NaN NaN NaN NaN \n",
|
|
"2 2 1 2 4 2 2 1.0 NaN NaN \n",
|
|
"3 7,272 8,177 8,468 7,524 8,509 5,638 581.0 NaN NaN \n",
|
|
"4 NaN NaN NaN 1 NaN NaN NaN NaN NaN \n",
|
|
"\n",
|
|
" 2022-12 2023-01 2023-02 2023-03 2023-04 \n",
|
|
"0 26 22 8.0 10.0 2.0 \n",
|
|
"1 NaN NaN NaN NaN NaN \n",
|
|
"2 NaN NaN 1.0 1.0 NaN \n",
|
|
"3 NaN NaN NaN NaN NaN \n",
|
|
"4 NaN NaN NaN NaN NaN "
|
|
]
|
|
},
|
|
"execution_count": 156,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.head(5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 157,
|
|
"id": "720c2582-f382-4fe7-bfca-768c696302aa",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div style=\"display:flex;flex-direction:row;justify-content:space-between;\">\n",
|
|
" <pre style=\"width: 100%; white-space: pre-wrap;\" id=\"99e754d9-60e7-400c-8728-3208219bc9ac\">\n",
|
|
"cust_data.fillna(0, inplace=True)\n",
|
|
"</pre>\n",
|
|
" <button style=\"height: fit-content;\" onclick=\"navigator.clipboard.writeText(JSON.parse(atob(`IlxuY3VzdF9kYXRhLmZpbGxuYSgwLCBpbnBsYWNlPVRydWUpXG4i`)))\">Copy</button>\n",
|
|
" </div>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.sketch.howto(\"Convert all NaN values to 0\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 168,
|
|
"id": "d659966c-830c-4f68-aa2a-ff8beb460177",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [],
|
|
"source": [
|
|
"cust_data.fillna(0, inplace=True)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 169,
|
|
"id": "30f91b34-32a1-41da-9303-2da779c6492f",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Organization</th>\n",
|
|
" <th>2022-01</th>\n",
|
|
" <th>2022-02</th>\n",
|
|
" <th>2022-03</th>\n",
|
|
" <th>2022-04</th>\n",
|
|
" <th>2022-05</th>\n",
|
|
" <th>2022-06</th>\n",
|
|
" <th>2022-07</th>\n",
|
|
" <th>2022-08</th>\n",
|
|
" <th>2022-09</th>\n",
|
|
" <th>2022-10</th>\n",
|
|
" <th>2022-11</th>\n",
|
|
" <th>2022-12</th>\n",
|
|
" <th>2023-01</th>\n",
|
|
" <th>2023-02</th>\n",
|
|
" <th>2023-03</th>\n",
|
|
" <th>2023-04</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>Aquent</td>\n",
|
|
" <td>58</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>43.0</td>\n",
|
|
" <td>27.0</td>\n",
|
|
" <td>24.0</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>8.0</td>\n",
|
|
" <td>10.0</td>\n",
|
|
" <td>2.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>BioLife Solutions, Inc.</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ZyXel Communications Inc</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>BrightLine Eating Solutions LLC</td>\n",
|
|
" <td>10362</td>\n",
|
|
" <td>7890</td>\n",
|
|
" <td>7272</td>\n",
|
|
" <td>8177</td>\n",
|
|
" <td>8468</td>\n",
|
|
" <td>7524</td>\n",
|
|
" <td>8509</td>\n",
|
|
" <td>5638</td>\n",
|
|
" <td>581.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>Casio America Inc</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Organization 2022-01 2022-02 2022-03 2022-04 2022-05 \n",
|
|
"0 Aquent 58 38 50 50 39 \\\n",
|
|
"1 BioLife Solutions, Inc. 11 7 4 11 4 \n",
|
|
"2 ZyXel Communications Inc 1 1 2 1 2 \n",
|
|
"3 BrightLine Eating Solutions LLC 10362 7890 7272 8177 8468 \n",
|
|
"4 Casio America Inc 0 0 0 0 0 \n",
|
|
"\n",
|
|
" 2022-06 2022-07 2022-08 2022-09 2022-10 2022-11 2022-12 2023-01 2023-02 \n",
|
|
"0 36 46 46 43.0 27.0 24.0 26 22 8.0 \\\n",
|
|
"1 0 0 0 0.0 0.0 0.0 0 0 0.0 \n",
|
|
"2 4 2 2 1.0 0.0 0.0 0 0 1.0 \n",
|
|
"3 7524 8509 5638 581.0 0.0 0.0 0 0 0.0 \n",
|
|
"4 1 0 0 0.0 0.0 0.0 0 0 0.0 \n",
|
|
"\n",
|
|
" 2023-03 2023-04 \n",
|
|
"0 10.0 2.0 \n",
|
|
"1 0.0 0.0 \n",
|
|
"2 1.0 0.0 \n",
|
|
"3 0.0 0.0 \n",
|
|
"4 0.0 0.0 "
|
|
]
|
|
},
|
|
"execution_count": 169,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.head(5)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 160,
|
|
"id": "09aa7041-ade3-43a5-b7f2-477f1dd734f1",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div style=\"display:flex;flex-direction:row;justify-content:space-between;\">\n",
|
|
" <pre style=\"width: 100%; white-space: pre-wrap;\" id=\"a1d0e0af-9a67-4883-9d7f-9ab80ac39bb1\">\n",
|
|
"# Remove the OrgID and Churn Date columns\n",
|
|
"cust_data = cust_data.drop(columns=['OrgID', 'Churn Date'])\n",
|
|
"</pre>\n",
|
|
" <button style=\"height: fit-content;\" onclick=\"navigator.clipboard.writeText(JSON.parse(atob(`IlxuIyBSZW1vdmUgdGhlIE9yZ0lEIGFuZCBDaHVybiBEYXRlIGNvbHVtbnNcbmN1c3RfZGF0YSA9IGN1c3RfZGF0YS5kcm9wKGNvbHVtbnM9WydPcmdJRCcsICdDaHVybiBEYXRlJ10pXG4i`)))\">Copy</button>\n",
|
|
" </div>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.sketch.howto(\"Remove the OrgID and Churn Date columns\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 173,
|
|
"id": "8d6d511c-1ee9-45e0-9f39-a7df08dfe5d4",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div>\n",
|
|
"<style scoped>\n",
|
|
" .dataframe tbody tr th:only-of-type {\n",
|
|
" vertical-align: middle;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe tbody tr th {\n",
|
|
" vertical-align: top;\n",
|
|
" }\n",
|
|
"\n",
|
|
" .dataframe thead th {\n",
|
|
" text-align: right;\n",
|
|
" }\n",
|
|
"</style>\n",
|
|
"<table border=\"1\" class=\"dataframe\">\n",
|
|
" <thead>\n",
|
|
" <tr style=\"text-align: right;\">\n",
|
|
" <th></th>\n",
|
|
" <th>Organization</th>\n",
|
|
" <th>2022-01</th>\n",
|
|
" <th>2022-02</th>\n",
|
|
" <th>2022-03</th>\n",
|
|
" <th>2022-04</th>\n",
|
|
" <th>2022-05</th>\n",
|
|
" <th>2022-06</th>\n",
|
|
" <th>2022-07</th>\n",
|
|
" <th>2022-08</th>\n",
|
|
" <th>2022-09</th>\n",
|
|
" <th>2022-10</th>\n",
|
|
" <th>2022-11</th>\n",
|
|
" <th>2022-12</th>\n",
|
|
" <th>2023-01</th>\n",
|
|
" <th>2023-02</th>\n",
|
|
" <th>2023-03</th>\n",
|
|
" <th>2023-04</th>\n",
|
|
" </tr>\n",
|
|
" </thead>\n",
|
|
" <tbody>\n",
|
|
" <tr>\n",
|
|
" <th>0</th>\n",
|
|
" <td>Aquent</td>\n",
|
|
" <td>58</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>50</td>\n",
|
|
" <td>39</td>\n",
|
|
" <td>36</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>46</td>\n",
|
|
" <td>43.0</td>\n",
|
|
" <td>27.0</td>\n",
|
|
" <td>24.0</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>8.0</td>\n",
|
|
" <td>10.0</td>\n",
|
|
" <td>2.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>1</th>\n",
|
|
" <td>BioLife Solutions, Inc.</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>11</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>2</th>\n",
|
|
" <td>ZyXel Communications Inc</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>3</th>\n",
|
|
" <td>BrightLine Eating Solutions LLC</td>\n",
|
|
" <td>10362</td>\n",
|
|
" <td>7890</td>\n",
|
|
" <td>7272</td>\n",
|
|
" <td>8177</td>\n",
|
|
" <td>8468</td>\n",
|
|
" <td>7524</td>\n",
|
|
" <td>8509</td>\n",
|
|
" <td>5638</td>\n",
|
|
" <td>581.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>4</th>\n",
|
|
" <td>Casio America Inc</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>5</th>\n",
|
|
" <td>Riviera Partners LLC</td>\n",
|
|
" <td>81</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>51</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>26</td>\n",
|
|
" <td>32</td>\n",
|
|
" <td>79</td>\n",
|
|
" <td>68</td>\n",
|
|
" <td>35.0</td>\n",
|
|
" <td>23.0</td>\n",
|
|
" <td>33.0</td>\n",
|
|
" <td>25</td>\n",
|
|
" <td>75</td>\n",
|
|
" <td>71.0</td>\n",
|
|
" <td>29.0</td>\n",
|
|
" <td>4.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>6</th>\n",
|
|
" <td>Viveve</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>7</th>\n",
|
|
" <td>connectRN Inc.</td>\n",
|
|
" <td>386</td>\n",
|
|
" <td>378</td>\n",
|
|
" <td>396</td>\n",
|
|
" <td>732</td>\n",
|
|
" <td>947</td>\n",
|
|
" <td>762</td>\n",
|
|
" <td>1203</td>\n",
|
|
" <td>889</td>\n",
|
|
" <td>438.0</td>\n",
|
|
" <td>178.0</td>\n",
|
|
" <td>115.0</td>\n",
|
|
" <td>214</td>\n",
|
|
" <td>92</td>\n",
|
|
" <td>165.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>8</th>\n",
|
|
" <td>Hammer Nutrition</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>6.0</td>\n",
|
|
" <td>6.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>9</th>\n",
|
|
" <td>National Campus and Community Radio Association</td>\n",
|
|
" <td>63</td>\n",
|
|
" <td>15</td>\n",
|
|
" <td>10</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>4.0</td>\n",
|
|
" <td>4.0</td>\n",
|
|
" <td>6.0</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>5</td>\n",
|
|
" <td>2.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>10</th>\n",
|
|
" <td>Portnoy, Messinger, Pearl & Associates, Inc.</td>\n",
|
|
" <td>28</td>\n",
|
|
" <td>27</td>\n",
|
|
" <td>79</td>\n",
|
|
" <td>17</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>3</td>\n",
|
|
" <td>8</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>11</th>\n",
|
|
" <td>Safari Energy</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>37</td>\n",
|
|
" <td>19</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>38</td>\n",
|
|
" <td>24</td>\n",
|
|
" <td>6</td>\n",
|
|
" <td>21.0</td>\n",
|
|
" <td>35.0</td>\n",
|
|
" <td>10.0</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>12</th>\n",
|
|
" <td>Starwood Pet Travel</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>4</td>\n",
|
|
" <td>22</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>7</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>2</td>\n",
|
|
" <td>0</td>\n",
|
|
" <td>2.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>13</th>\n",
|
|
" <td>Trax Technology Solutions Pte Ltd</td>\n",
|
|
" <td>381</td>\n",
|
|
" <td>677</td>\n",
|
|
" <td>583</td>\n",
|
|
" <td>671</td>\n",
|
|
" <td>515</td>\n",
|
|
" <td>380</td>\n",
|
|
" <td>181</td>\n",
|
|
" <td>449</td>\n",
|
|
" <td>12.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>1.0</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>1</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" <tr>\n",
|
|
" <th>14</th>\n",
|
|
" <td>Uber London Limited (POOL)</td>\n",
|
|
" <td>721</td>\n",
|
|
" <td>775</td>\n",
|
|
" <td>825</td>\n",
|
|
" <td>606</td>\n",
|
|
" <td>578</td>\n",
|
|
" <td>501</td>\n",
|
|
" <td>497</td>\n",
|
|
" <td>543</td>\n",
|
|
" <td>628.0</td>\n",
|
|
" <td>505.0</td>\n",
|
|
" <td>650.0</td>\n",
|
|
" <td>1,270</td>\n",
|
|
" <td>1,957</td>\n",
|
|
" <td>190.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" <td>0.0</td>\n",
|
|
" </tr>\n",
|
|
" </tbody>\n",
|
|
"</table>\n",
|
|
"</div>"
|
|
],
|
|
"text/plain": [
|
|
" Organization 2022-01 2022-02 2022-03 \n",
|
|
"0 Aquent 58 38 50 \\\n",
|
|
"1 BioLife Solutions, Inc. 11 7 4 \n",
|
|
"2 ZyXel Communications Inc 1 1 2 \n",
|
|
"3 BrightLine Eating Solutions LLC 10362 7890 7272 \n",
|
|
"4 Casio America Inc 0 0 0 \n",
|
|
"5 Riviera Partners LLC 81 19 51 \n",
|
|
"6 Viveve 0 0 0 \n",
|
|
"7 connectRN Inc. 386 378 396 \n",
|
|
"8 Hammer Nutrition 0 1 1 \n",
|
|
"9 National Campus and Community Radio Association 63 15 10 \n",
|
|
"10 Portnoy, Messinger, Pearl & Associates, Inc. 28 27 79 \n",
|
|
"11 Safari Energy 2 37 19 \n",
|
|
"12 Starwood Pet Travel 0 1 4 \n",
|
|
"13 Trax Technology Solutions Pte Ltd 381 677 583 \n",
|
|
"14 Uber London Limited (POOL) 721 775 825 \n",
|
|
"\n",
|
|
" 2022-04 2022-05 2022-06 2022-07 2022-08 2022-09 2022-10 2022-11 2022-12 \n",
|
|
"0 50 39 36 46 46 43.0 27.0 24.0 26 \\\n",
|
|
"1 11 4 0 0 0 0.0 0.0 0.0 0 \n",
|
|
"2 1 2 4 2 2 1.0 0.0 0.0 0 \n",
|
|
"3 8177 8468 7524 8509 5638 581.0 0.0 0.0 0 \n",
|
|
"4 0 0 1 0 0 0.0 0.0 0.0 0 \n",
|
|
"5 26 26 32 79 68 35.0 23.0 33.0 25 \n",
|
|
"6 0 0 4 1 0 0.0 0.0 0.0 19 \n",
|
|
"7 732 947 762 1203 889 438.0 178.0 115.0 214 \n",
|
|
"8 2 7 5 4 5 6.0 6.0 0.0 0 \n",
|
|
"9 4 8 2 3 0 4.0 4.0 6.0 5 \n",
|
|
"10 17 1 3 8 0 1.0 0.0 1.0 1 \n",
|
|
"11 2 1 38 24 6 21.0 35.0 10.0 7 \n",
|
|
"12 22 2 1 7 0 0.0 0.0 0.0 2 \n",
|
|
"13 671 515 380 181 449 12.0 0.0 1.0 1 \n",
|
|
"14 606 578 501 497 543 628.0 505.0 650.0 1,270 \n",
|
|
"\n",
|
|
" 2023-01 2023-02 2023-03 2023-04 \n",
|
|
"0 22 8.0 10.0 2.0 \n",
|
|
"1 0 0.0 0.0 0.0 \n",
|
|
"2 0 1.0 1.0 0.0 \n",
|
|
"3 0 0.0 0.0 0.0 \n",
|
|
"4 0 0.0 0.0 0.0 \n",
|
|
"5 75 71.0 29.0 4.0 \n",
|
|
"6 3 0.0 0.0 0.0 \n",
|
|
"7 92 165.0 0.0 0.0 \n",
|
|
"8 0 0.0 0.0 0.0 \n",
|
|
"9 5 2.0 0.0 0.0 \n",
|
|
"10 2 0.0 0.0 0.0 \n",
|
|
"11 1 0.0 0.0 0.0 \n",
|
|
"12 0 2.0 0.0 0.0 \n",
|
|
"13 1 0.0 0.0 0.0 \n",
|
|
"14 1,957 190.0 0.0 0.0 "
|
|
]
|
|
},
|
|
"execution_count": 173,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.head(15)"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 176,
|
|
"id": "c13baa2d-428c-4ff4-a2f6-12737819fb9f",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/html": [
|
|
"<div style=\"display:flex;flex-direction:row;justify-content:space-between;\">\n",
|
|
" <pre style=\"width: 100%; white-space: pre-wrap;\" id=\"9569b033-0def-4a83-b056-19fea217d1da\">\n",
|
|
"# Convert index row, columns 1-17 value to datetime\n",
|
|
"cust_data.columns = pd.to_datetime(cust_data.columns)\n",
|
|
"</pre>\n",
|
|
" <button style=\"height: fit-content;\" onclick=\"navigator.clipboard.writeText(JSON.parse(atob(`IlxuIyBDb252ZXJ0IGluZGV4IHJvdywgY29sdW1ucyAxLTE3IHZhbHVlIHRvIGRhdGV0aW1lXG5jdXN0X2RhdGEuY29sdW1ucyA9IHBkLnRvX2RhdGV0aW1lKGN1c3RfZGF0YS5jb2x1bW5zKVxuIg==`)))\">Copy</button>\n",
|
|
" </div>"
|
|
],
|
|
"text/plain": [
|
|
"<IPython.core.display.HTML object>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"cust_data.sketch.howto(\"Convert index row, columns 1-17 value to datetime\")"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 179,
|
|
"id": "c229b344-94c8-4ab1-aa8d-1e15d6dc12bc",
|
|
"metadata": {
|
|
"tags": []
|
|
},
|
|
"outputs": [
|
|
{
|
|
"ename": "ValueError",
|
|
"evalue": "Length mismatch: Expected axis has 17 elements, new values have 15 elements",
|
|
"output_type": "error",
|
|
"traceback": [
|
|
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
|
|
"\u001b[0;31mValueError\u001b[0m Traceback (most recent call last)",
|
|
"Cell \u001b[0;32mIn[179], line 2\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Convert index row, columns 1-17 value to datetime\u001b[39;00m\n\u001b[0;32m----> 2\u001b[0m \u001b[43mcust_data\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mto_datetime(cust_data\u001b[38;5;241m.\u001b[39mcolumns[\u001b[38;5;241m1\u001b[39m:\u001b[38;5;241m16\u001b[39m])\n",
|
|
"File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/generic.py:6002\u001b[0m, in \u001b[0;36mNDFrame.__setattr__\u001b[0;34m(self, name, value)\u001b[0m\n\u001b[1;32m 6000\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m 6001\u001b[0m \u001b[38;5;28mobject\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__getattribute__\u001b[39m(\u001b[38;5;28mself\u001b[39m, name)\n\u001b[0;32m-> 6002\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mobject\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__setattr__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mname\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 6003\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mAttributeError\u001b[39;00m:\n\u001b[1;32m 6004\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n",
|
|
"File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/_libs/properties.pyx:69\u001b[0m, in \u001b[0;36mpandas._libs.properties.AxisProperty.__set__\u001b[0;34m()\u001b[0m\n",
|
|
"File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/generic.py:730\u001b[0m, in \u001b[0;36mNDFrame._set_axis\u001b[0;34m(self, axis, labels)\u001b[0m\n\u001b[1;32m 725\u001b[0m \u001b[38;5;250m\u001b[39m\u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 726\u001b[0m \u001b[38;5;124;03mThis is called from the cython code when we set the `index` attribute\u001b[39;00m\n\u001b[1;32m 727\u001b[0m \u001b[38;5;124;03mdirectly, e.g. `series.index = [1, 2, 3]`.\u001b[39;00m\n\u001b[1;32m 728\u001b[0m \u001b[38;5;124;03m\"\"\"\u001b[39;00m\n\u001b[1;32m 729\u001b[0m labels \u001b[38;5;241m=\u001b[39m ensure_index(labels)\n\u001b[0;32m--> 730\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_mgr\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mset_axis\u001b[49m\u001b[43m(\u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabels\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 731\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_clear_item_cache()\n",
|
|
"File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/internals/managers.py:225\u001b[0m, in \u001b[0;36mBaseBlockManager.set_axis\u001b[0;34m(self, axis, new_labels)\u001b[0m\n\u001b[1;32m 223\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mset_axis\u001b[39m(\u001b[38;5;28mself\u001b[39m, axis: AxisInt, new_labels: Index) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 224\u001b[0m \u001b[38;5;66;03m# Caller is responsible for ensuring we have an Index object.\u001b[39;00m\n\u001b[0;32m--> 225\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_validate_set_axis\u001b[49m\u001b[43m(\u001b[49m\u001b[43maxis\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mnew_labels\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 226\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maxes[axis] \u001b[38;5;241m=\u001b[39m new_labels\n",
|
|
"File \u001b[0;32m~/.pyenv/versions/3.11.1/envs/jupyter/lib/python3.11/site-packages/pandas/core/internals/base.py:70\u001b[0m, in \u001b[0;36mDataManager._validate_set_axis\u001b[0;34m(self, axis, new_labels)\u001b[0m\n\u001b[1;32m 67\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 69\u001b[0m \u001b[38;5;28;01melif\u001b[39;00m new_len \u001b[38;5;241m!=\u001b[39m old_len:\n\u001b[0;32m---> 70\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mValueError\u001b[39;00m(\n\u001b[1;32m 71\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mLength mismatch: Expected axis has \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mold_len\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m elements, new \u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mvalues have \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mnew_len\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m elements\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 73\u001b[0m )\n",
|
|
"\u001b[0;31mValueError\u001b[0m: Length mismatch: Expected axis has 17 elements, new values have 15 elements"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Convert index row, columns 1-17 value to datetime\n",
|
|
"cust_data.columns = pd.to_datetime(cust_data.columns[1:16])"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "c574a86b-67a8-4cdd-9cbd-b7461c2f1c8c",
|
|
"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.1"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|