{ "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
OrgIDOrganizationChurn Date2022-012022-022022-032022-042022-052022-062022-072022-082022-092022-102022-112022-122023-012023-022023-032023-04
030867753Aquent2023-04583850503936464643.027.024.026228.010.02.0
133375202BioLife Solutions, Inc.2023-041174114NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
230867495ZyXel Communications Inc2023-04112124221.0NaNNaNNaNNaN1.01.0NaN
332999202BrightLine Eating Solutions LLC2023-0310,3627,8907,2728,1778,4687,5248,5095,638581.0NaNNaNNaNNaNNaNNaNNaN
430867752Casio America Inc2023-03NaNNaNNaNNaNNaN1NaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", "
" ], "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": [ "
\n", "
\n",
       "cust_data.fillna(0, inplace=True)\n",
       "
\n", " \n", "
" ], "text/plain": [ "" ] }, "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Organization2022-012022-022022-032022-042022-052022-062022-072022-082022-092022-102022-112022-122023-012023-022023-032023-04
0Aquent583850503936464643.027.024.026228.010.02.0
1BioLife Solutions, Inc.11741140000.00.00.0000.00.00.0
2ZyXel Communications Inc112124221.00.00.0001.01.00.0
3BrightLine Eating Solutions LLC103627890727281778468752485095638581.00.00.0000.00.00.0
4Casio America Inc000001000.00.00.0000.00.00.0
\n", "
" ], "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": [ "
\n", "
\n",
       "# Remove the OrgID and Churn Date columns\n",
       "cust_data = cust_data.drop(columns=['OrgID', 'Churn Date'])\n",
       "
\n", " \n", "
" ], "text/plain": [ "" ] }, "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": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
Organization2022-012022-022022-032022-042022-052022-062022-072022-082022-092022-102022-112022-122023-012023-022023-032023-04
0Aquent583850503936464643.027.024.026228.010.02.0
1BioLife Solutions, Inc.11741140000.00.00.0000.00.00.0
2ZyXel Communications Inc112124221.00.00.0001.01.00.0
3BrightLine Eating Solutions LLC103627890727281778468752485095638581.00.00.0000.00.00.0
4Casio America Inc000001000.00.00.0000.00.00.0
5Riviera Partners LLC811951262632796835.023.033.0257571.029.04.0
6Viveve000004100.00.00.01930.00.00.0
7connectRN Inc.3863783967329477621203889438.0178.0115.021492165.00.00.0
8Hammer Nutrition011275456.06.00.0000.00.00.0
9National Campus and Community Radio Association631510482304.04.06.0552.00.00.0
10Portnoy, Messinger, Pearl & Associates, Inc.2827791713801.00.01.0120.00.00.0
11Safari Energy23719213824621.035.010.0710.00.00.0
12Starwood Pet Travel0142221700.00.00.0202.00.00.0
13Trax Technology Solutions Pte Ltd38167758367151538018144912.00.01.0110.00.00.0
14Uber London Limited (POOL)721775825606578501497543628.0505.0650.01,2701,957190.00.00.0
\n", "
" ], "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": [ "
\n", "
\n",
       "# Convert index row, columns 1-17 value to datetime\n",
       "cust_data.columns = pd.to_datetime(cust_data.columns)\n",
       "
\n", " \n", "
" ], "text/plain": [ "" ] }, "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 }