diff --git a/lab-dw-data-structuring-and-combining.ipynb b/lab-dw-data-structuring-and-combining.ipynb index ec4e3f9..910d2e7 100644 --- a/lab-dw-data-structuring-and-combining.ipynb +++ b/lab-dw-data-structuring-and-combining.ipynb @@ -36,14 +36,2985 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 45, "id": "492d06e3-92c7-4105-ac72-536db98d3244", "metadata": { "id": "492d06e3-92c7-4105-ac72-536db98d3244" }, "outputs": [], "source": [ - "# Your code goes here" + "# Your code goes here\n", + "\n", + "import pandas as pd\n", + "\n", + "url1 = \"https://raw.githubusercontent.com/data-bootcamp-v4/data/main/file1.csv\"\n", + "url2 = \"https://raw.githubusercontent.com/data-bootcamp-v4/data/main/file2.csv\"\n", + "url3 = \"https://raw.githubusercontent.com/data-bootcamp-v4/data/main/file3.csv\"\n", + "\n", + "\n", + "df1 = pd.read_csv(url1)\n", + "df2 = pd.read_csv(url2)\n", + "df3 = pd.read_csv(url3)\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "da0bf86e", + "metadata": {}, + "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", + "
CustomerSTGENDEREducationCustomer Lifetime ValueIncomeMonthly Premium AutoNumber of Open ComplaintsPolicy TypeVehicle ClassTotal Claim Amount
0RB50392WashingtonNaNMasterNaN0.01000.01/0/00Personal AutoFour-Door Car2.704934
1QZ44356ArizonaFBachelor697953.59%0.094.01/0/00Personal AutoFour-Door Car1131.464935
2AI49188NevadaFBachelor1288743.17%48767.0108.01/0/00Personal AutoTwo-Door Car566.472247
3WW63253CaliforniaMBachelor764586.18%0.0106.01/0/00Corporate AutoSUV529.881344
4GA49547WashingtonMHigh School or Below536307.65%36357.068.01/0/00Personal AutoFour-Door Car17.269323
....................................
4003NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4004NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4005NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4006NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
4007NaNNaNNaNNaNNaNNaNNaNNaNNaNNaNNaN
\n", + "

4008 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Customer ST GENDER Education \\\n", + "0 RB50392 Washington NaN Master \n", + "1 QZ44356 Arizona F Bachelor \n", + "2 AI49188 Nevada F Bachelor \n", + "3 WW63253 California M Bachelor \n", + "4 GA49547 Washington M High School or Below \n", + "... ... ... ... ... \n", + "4003 NaN NaN NaN NaN \n", + "4004 NaN NaN NaN NaN \n", + "4005 NaN NaN NaN NaN \n", + "4006 NaN NaN NaN NaN \n", + "4007 NaN NaN NaN NaN \n", + "\n", + " Customer Lifetime Value Income Monthly Premium Auto \\\n", + "0 NaN 0.0 1000.0 \n", + "1 697953.59% 0.0 94.0 \n", + "2 1288743.17% 48767.0 108.0 \n", + "3 764586.18% 0.0 106.0 \n", + "4 536307.65% 36357.0 68.0 \n", + "... ... ... ... \n", + "4003 NaN NaN NaN \n", + "4004 NaN NaN NaN \n", + "4005 NaN NaN NaN \n", + "4006 NaN NaN NaN \n", + "4007 NaN NaN NaN \n", + "\n", + " Number of Open Complaints Policy Type Vehicle Class \\\n", + "0 1/0/00 Personal Auto Four-Door Car \n", + "1 1/0/00 Personal Auto Four-Door Car \n", + "2 1/0/00 Personal Auto Two-Door Car \n", + "3 1/0/00 Corporate Auto SUV \n", + "4 1/0/00 Personal Auto Four-Door Car \n", + "... ... ... ... \n", + "4003 NaN NaN NaN \n", + "4004 NaN NaN NaN \n", + "4005 NaN NaN NaN \n", + "4006 NaN NaN NaN \n", + "4007 NaN NaN NaN \n", + "\n", + " Total Claim Amount \n", + "0 2.704934 \n", + "1 1131.464935 \n", + "2 566.472247 \n", + "3 529.881344 \n", + "4 17.269323 \n", + "... ... \n", + "4003 NaN \n", + "4004 NaN \n", + "4005 NaN \n", + "4006 NaN \n", + "4007 NaN \n", + "\n", + "[4008 rows x 11 columns]" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df1" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "96407481", + "metadata": {}, + "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", + "
CustomerSTGENDEREducationCustomer Lifetime ValueIncomeMonthly Premium AutoNumber of Open ComplaintsTotal Claim AmountPolicy TypeVehicle Class
0GS98873ArizonaFBachelor323912.47%16061881/0/00633.600000Personal AutoFour-Door Car
1CW49887CaliforniaFMaster462680.11%794871141/0/00547.200000Special AutoSUV
2MY31220CaliforniaFCollege899704.02%542301121/0/00537.600000Personal AutoTwo-Door Car
3UH35128OregonFCollege2580706.30%712102141/1/001027.200000Personal AutoLuxury Car
4WH52799ArizonaFCollege380812.21%94903941/0/00451.200000Corporate AutoTwo-Door Car
....................................
991HV85198ArizonaMMaster847141.75%63513701/0/00185.667213Personal AutoFour-Door Car
992BS91566ArizonaFCollege543121.91%58161681/0/00140.747286Corporate AutoFour-Door Car
993IL40123NevadaFCollege568964.41%83640701/0/00471.050488Corporate AutoTwo-Door Car
994MY32149CaliforniaFMaster368672.38%0961/0/0028.460568Personal AutoTwo-Door Car
995SA91515CaliforniaMBachelor399258.39%01111/0/00700.349052Personal AutoSUV
\n", + "

996 rows × 11 columns

\n", + "
" + ], + "text/plain": [ + " Customer ST GENDER Education Customer Lifetime Value Income \\\n", + "0 GS98873 Arizona F Bachelor 323912.47% 16061 \n", + "1 CW49887 California F Master 462680.11% 79487 \n", + "2 MY31220 California F College 899704.02% 54230 \n", + "3 UH35128 Oregon F College 2580706.30% 71210 \n", + "4 WH52799 Arizona F College 380812.21% 94903 \n", + ".. ... ... ... ... ... ... \n", + "991 HV85198 Arizona M Master 847141.75% 63513 \n", + "992 BS91566 Arizona F College 543121.91% 58161 \n", + "993 IL40123 Nevada F College 568964.41% 83640 \n", + "994 MY32149 California F Master 368672.38% 0 \n", + "995 SA91515 California M Bachelor 399258.39% 0 \n", + "\n", + " Monthly Premium Auto Number of Open Complaints Total Claim Amount \\\n", + "0 88 1/0/00 633.600000 \n", + "1 114 1/0/00 547.200000 \n", + "2 112 1/0/00 537.600000 \n", + "3 214 1/1/00 1027.200000 \n", + "4 94 1/0/00 451.200000 \n", + ".. ... ... ... \n", + "991 70 1/0/00 185.667213 \n", + "992 68 1/0/00 140.747286 \n", + "993 70 1/0/00 471.050488 \n", + "994 96 1/0/00 28.460568 \n", + "995 111 1/0/00 700.349052 \n", + "\n", + " Policy Type Vehicle Class \n", + "0 Personal Auto Four-Door Car \n", + "1 Special Auto SUV \n", + "2 Personal Auto Two-Door Car \n", + "3 Personal Auto Luxury Car \n", + "4 Corporate Auto Two-Door Car \n", + ".. ... ... \n", + "991 Personal Auto Four-Door Car \n", + "992 Corporate Auto Four-Door Car \n", + "993 Corporate Auto Two-Door Car \n", + "994 Personal Auto Two-Door Car \n", + "995 Personal Auto SUV \n", + "\n", + "[996 rows x 11 columns]" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df2" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "17fd313b", + "metadata": {}, + "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", + "
CustomerSTGENDEREducationCustomer Lifetime ValueIncomeMonthly Premium AutoNumber of Open ComplaintsPolicy TypeVehicle ClassTotal Claim AmountStateGender
0RB50392WashingtonNaNMasterNaN0.01000.01/0/00Personal AutoFour-Door Car2.704934NaNNaN
1QZ44356ArizonaFBachelor697953.59%0.094.01/0/00Personal AutoFour-Door Car1131.464935NaNNaN
2AI49188NevadaFBachelor1288743.17%48767.0108.01/0/00Personal AutoTwo-Door Car566.472247NaNNaN
3WW63253CaliforniaMBachelor764586.18%0.0106.01/0/00Corporate AutoSUV529.881344NaNNaN
4GA49547WashingtonMHigh School or Below536307.65%36357.068.01/0/00Personal AutoFour-Door Car17.269323NaNNaN
..........................................
12069LA72316NaNNaNBachelor23405.9879871941.073.00Personal AutoFour-Door Car198.234764CaliforniaM
12070PK87824NaNNaNCollege3096.51121721604.079.00Corporate AutoFour-Door Car379.200000CaliforniaF
12071TD14365NaNNaNBachelor8163.8904280.085.03Corporate AutoFour-Door Car790.784983CaliforniaM
12072UP19263NaNNaNCollege7524.44243621941.096.00Personal AutoFour-Door Car691.200000CaliforniaM
12073Y167826NaNNaNCollege2611.8368660.077.00Corporate AutoTwo-Door Car369.600000CaliforniaM
\n", + "

12074 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Customer ST GENDER Education \\\n", + "0 RB50392 Washington NaN Master \n", + "1 QZ44356 Arizona F Bachelor \n", + "2 AI49188 Nevada F Bachelor \n", + "3 WW63253 California M Bachelor \n", + "4 GA49547 Washington M High School or Below \n", + "... ... ... ... ... \n", + "12069 LA72316 NaN NaN Bachelor \n", + "12070 PK87824 NaN NaN College \n", + "12071 TD14365 NaN NaN Bachelor \n", + "12072 UP19263 NaN NaN College \n", + "12073 Y167826 NaN NaN College \n", + "\n", + " Customer Lifetime Value Income Monthly Premium Auto \\\n", + "0 NaN 0.0 1000.0 \n", + "1 697953.59% 0.0 94.0 \n", + "2 1288743.17% 48767.0 108.0 \n", + "3 764586.18% 0.0 106.0 \n", + "4 536307.65% 36357.0 68.0 \n", + "... ... ... ... \n", + "12069 23405.98798 71941.0 73.0 \n", + "12070 3096.511217 21604.0 79.0 \n", + "12071 8163.890428 0.0 85.0 \n", + "12072 7524.442436 21941.0 96.0 \n", + "12073 2611.836866 0.0 77.0 \n", + "\n", + " Number of Open Complaints Policy Type Vehicle Class \\\n", + "0 1/0/00 Personal Auto Four-Door Car \n", + "1 1/0/00 Personal Auto Four-Door Car \n", + "2 1/0/00 Personal Auto Two-Door Car \n", + "3 1/0/00 Corporate Auto SUV \n", + "4 1/0/00 Personal Auto Four-Door Car \n", + "... ... ... ... \n", + "12069 0 Personal Auto Four-Door Car \n", + "12070 0 Corporate Auto Four-Door Car \n", + "12071 3 Corporate Auto Four-Door Car \n", + "12072 0 Personal Auto Four-Door Car \n", + "12073 0 Corporate Auto Two-Door Car \n", + "\n", + " Total Claim Amount State Gender \n", + "0 2.704934 NaN NaN \n", + "1 1131.464935 NaN NaN \n", + "2 566.472247 NaN NaN \n", + "3 529.881344 NaN NaN \n", + "4 17.269323 NaN NaN \n", + "... ... ... ... \n", + "12069 198.234764 California M \n", + "12070 379.200000 California F \n", + "12071 790.784983 California M \n", + "12072 691.200000 California M \n", + "12073 369.600000 California M \n", + "\n", + "[12074 rows x 13 columns]" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "id": "db81a73e", + "metadata": {}, + "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", + "
CustomerSTGENDEREducationCustomer Lifetime ValueIncomeMonthly Premium AutoNumber of Open ComplaintsPolicy TypeVehicle ClassTotal Claim AmountStateGender
0RB50392WashingtonNaNMasterNaN0.01000.01/0/00Personal AutoFour-Door Car2.704934NaNNaN
1QZ44356ArizonaFBachelor697953.59%0.094.01/0/00Personal AutoFour-Door Car1131.464935NaNNaN
2AI49188NevadaFBachelor1288743.17%48767.0108.01/0/00Personal AutoTwo-Door Car566.472247NaNNaN
3WW63253CaliforniaMBachelor764586.18%0.0106.01/0/00Corporate AutoSUV529.881344NaNNaN
4GA49547WashingtonMHigh School or Below536307.65%36357.068.01/0/00Personal AutoFour-Door Car17.269323NaNNaN
..........................................
12069LA72316NaNNaNBachelor23405.9879871941.073.00Personal AutoFour-Door Car198.234764CaliforniaM
12070PK87824NaNNaNCollege3096.51121721604.079.00Corporate AutoFour-Door Car379.200000CaliforniaF
12071TD14365NaNNaNBachelor8163.8904280.085.03Corporate AutoFour-Door Car790.784983CaliforniaM
12072UP19263NaNNaNCollege7524.44243621941.096.00Personal AutoFour-Door Car691.200000CaliforniaM
12073Y167826NaNNaNCollege2611.8368660.077.00Corporate AutoTwo-Door Car369.600000CaliforniaM
\n", + "

12074 rows × 13 columns

\n", + "
" + ], + "text/plain": [ + " Customer ST GENDER Education \\\n", + "0 RB50392 Washington NaN Master \n", + "1 QZ44356 Arizona F Bachelor \n", + "2 AI49188 Nevada F Bachelor \n", + "3 WW63253 California M Bachelor \n", + "4 GA49547 Washington M High School or Below \n", + "... ... ... ... ... \n", + "12069 LA72316 NaN NaN Bachelor \n", + "12070 PK87824 NaN NaN College \n", + "12071 TD14365 NaN NaN Bachelor \n", + "12072 UP19263 NaN NaN College \n", + "12073 Y167826 NaN NaN College \n", + "\n", + " Customer Lifetime Value Income Monthly Premium Auto \\\n", + "0 NaN 0.0 1000.0 \n", + "1 697953.59% 0.0 94.0 \n", + "2 1288743.17% 48767.0 108.0 \n", + "3 764586.18% 0.0 106.0 \n", + "4 536307.65% 36357.0 68.0 \n", + "... ... ... ... \n", + "12069 23405.98798 71941.0 73.0 \n", + "12070 3096.511217 21604.0 79.0 \n", + "12071 8163.890428 0.0 85.0 \n", + "12072 7524.442436 21941.0 96.0 \n", + "12073 2611.836866 0.0 77.0 \n", + "\n", + " Number of Open Complaints Policy Type Vehicle Class \\\n", + "0 1/0/00 Personal Auto Four-Door Car \n", + "1 1/0/00 Personal Auto Four-Door Car \n", + "2 1/0/00 Personal Auto Two-Door Car \n", + "3 1/0/00 Corporate Auto SUV \n", + "4 1/0/00 Personal Auto Four-Door Car \n", + "... ... ... ... \n", + "12069 0 Personal Auto Four-Door Car \n", + "12070 0 Corporate Auto Four-Door Car \n", + "12071 3 Corporate Auto Four-Door Car \n", + "12072 0 Personal Auto Four-Door Car \n", + "12073 0 Corporate Auto Two-Door Car \n", + "\n", + " Total Claim Amount State Gender \n", + "0 2.704934 NaN NaN \n", + "1 1131.464935 NaN NaN \n", + "2 566.472247 NaN NaN \n", + "3 529.881344 NaN NaN \n", + "4 17.269323 NaN NaN \n", + "... ... ... ... \n", + "12069 198.234764 California M \n", + "12070 379.200000 California F \n", + "12071 790.784983 California M \n", + "12072 691.200000 California M \n", + "12073 369.600000 California M \n", + "\n", + "[12074 rows x 13 columns]" + ] + }, + "execution_count": 46, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = pd.concat([df1, df2, df3], ignore_index=True)\n", + "\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "id": "673a4f80", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 12074 entries, 0 to 12073\n", + "Data columns (total 13 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 Customer 9137 non-null str \n", + " 1 ST 2067 non-null str \n", + " 2 GENDER 1945 non-null str \n", + " 3 Education 9137 non-null str \n", + " 4 Customer Lifetime Value 9130 non-null object \n", + " 5 Income 9137 non-null float64\n", + " 6 Monthly Premium Auto 9137 non-null float64\n", + " 7 Number of Open Complaints 9137 non-null object \n", + " 8 Policy Type 9137 non-null str \n", + " 9 Vehicle Class 9137 non-null str \n", + " 10 Total Claim Amount 9137 non-null float64\n", + " 11 State 7070 non-null str \n", + " 12 Gender 7070 non-null str \n", + "dtypes: float64(3), object(2), str(8)\n", + "memory usage: 1.2+ MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "id": "1d0d6a7e", + "metadata": {}, + "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", + "
CustomerSTGENDEREducationCustomer Lifetime ValueIncomeMonthly Premium AutoNumber of Open ComplaintsPolicy TypeVehicle ClassTotal Claim AmountStateGender
count91372067194591379130.0000009137.0000009137.0000009137.0913791379137.00000070707070
unique90568568211.000000NaNNaN12.036NaN52
topGA49547OregonFBachelor3265.156348NaNNaN0.0Personal AutoFour-Door CarNaNCaliforniaF
freq262398427196.000000NaNNaN5629.067924641NaN25443576
meanNaNNaNNaNNaNNaN37828.820291110.391266NaNNaNNaN430.527140NaNNaN
stdNaNNaNNaNNaNNaN30358.716159581.376032NaNNaNNaN289.582968NaNNaN
minNaNNaNNaNNaNNaN0.00000061.000000NaNNaNNaN0.099007NaNNaN
25%NaNNaNNaNNaNNaN0.00000068.000000NaNNaNNaN266.996814NaNNaN
50%NaNNaNNaNNaNNaN34244.00000083.000000NaNNaNNaN377.561463NaNNaN
75%NaNNaNNaNNaNNaN62447.000000109.000000NaNNaNNaN546.420009NaNNaN
maxNaNNaNNaNNaNNaN99981.00000035354.000000NaNNaNNaN2893.239678NaNNaN
\n", + "
" + ], + "text/plain": [ + " Customer ST GENDER Education Customer Lifetime Value \\\n", + "count 9137 2067 1945 9137 9130.000000 \n", + "unique 9056 8 5 6 8211.000000 \n", + "top GA49547 Oregon F Bachelor 3265.156348 \n", + "freq 2 623 984 2719 6.000000 \n", + "mean NaN NaN NaN NaN NaN \n", + "std NaN NaN NaN NaN NaN \n", + "min NaN NaN NaN NaN NaN \n", + "25% NaN NaN NaN NaN NaN \n", + "50% NaN NaN NaN NaN NaN \n", + "75% NaN NaN NaN NaN NaN \n", + "max NaN NaN NaN NaN NaN \n", + "\n", + " Income Monthly Premium Auto Number of Open Complaints \\\n", + "count 9137.000000 9137.000000 9137.0 \n", + "unique NaN NaN 12.0 \n", + "top NaN NaN 0.0 \n", + "freq NaN NaN 5629.0 \n", + "mean 37828.820291 110.391266 NaN \n", + "std 30358.716159 581.376032 NaN \n", + "min 0.000000 61.000000 NaN \n", + "25% 0.000000 68.000000 NaN \n", + "50% 34244.000000 83.000000 NaN \n", + "75% 62447.000000 109.000000 NaN \n", + "max 99981.000000 35354.000000 NaN \n", + "\n", + " Policy Type Vehicle Class Total Claim Amount State Gender \n", + "count 9137 9137 9137.000000 7070 7070 \n", + "unique 3 6 NaN 5 2 \n", + "top Personal Auto Four-Door Car NaN California F \n", + "freq 6792 4641 NaN 2544 3576 \n", + "mean NaN NaN 430.527140 NaN NaN \n", + "std NaN NaN 289.582968 NaN NaN \n", + "min NaN NaN 0.099007 NaN NaN \n", + "25% NaN NaN 266.996814 NaN NaN \n", + "50% NaN NaN 377.561463 NaN NaN \n", + "75% NaN NaN 546.420009 NaN NaN \n", + "max NaN NaN 2893.239678 NaN NaN " + ] + }, + "execution_count": 18, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.describe(include=\"all\")" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "53bb0557", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Customer 2937\n", + "ST 10007\n", + "GENDER 10129\n", + "Education 2937\n", + "Customer Lifetime Value 2944\n", + "Income 2937\n", + "Monthly Premium Auto 2937\n", + "Number of Open Complaints 2937\n", + "Policy Type 2937\n", + "Vehicle Class 2937\n", + "Total Claim Amount 2937\n", + "State 5004\n", + "Gender 5004\n", + "dtype: int64" + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.isna().sum()" + ] + }, + { + "cell_type": "code", + "execution_count": 47, + "id": "60f9987d", + "metadata": {}, + "outputs": [], + "source": [ + "# Standardize column names\n", + "\n", + "df.columns = (\n", + " df.columns\n", + " .str.lower()\n", + " .str.strip()\n", + " .str.replace(\" \", \"_\")\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "8865cbf5", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['customer', 'st', 'gender', 'education', 'customer_lifetime_value',\n", + " 'income', 'monthly_premium_auto', 'number_of_open_complaints',\n", + " 'policy_type', 'vehicle_class', 'total_claim_amount', 'state',\n", + " 'gender'],\n", + " dtype='str')" + ] + }, + "execution_count": 22, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 48, + "id": "dcaa8ff6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "2939\n" + ] + } + ], + "source": [ + "# Checking duplioates\n", + "\n", + "print(df.duplicated().sum())" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "id": "e950c89e", + "metadata": {}, + "outputs": [], + "source": [ + "# Removing duplicates\n", + "\n", + "df = df.drop_duplicates()" + ] + }, + { + "cell_type": "code", + "execution_count": 50, + "id": "9418ea6e", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "0\n" + ] + } + ], + "source": [ + "# Checking duplicates again\n", + "\n", + "print(df.duplicated().sum())" + ] + }, + { + "cell_type": "code", + "execution_count": 51, + "id": "f0a50c12", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "gender 7193\n", + "st 7071\n", + "state 2065\n", + "gender 2065\n", + "customer_lifetime_value 8\n", + "education 1\n", + "customer 1\n", + "income 1\n", + "monthly_premium_auto 1\n", + "policy_type 1\n", + "number_of_open_complaints 1\n", + "total_claim_amount 1\n", + "vehicle_class 1\n", + "dtype: int64" + ] + }, + "execution_count": 51, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "# Missing values\n", + "\n", + "df.isnull().sum().sort_values(ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 52, + "id": "951ce62d", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"gender\"] = df[\"gender\"].fillna(\"Unknown\")" + ] + }, + { + "cell_type": "code", + "execution_count": 53, + "id": "0a0d35df", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"st\"] = df[\"st\"].fillna(\"Unknown\")" + ] + }, + { + "cell_type": "code", + "execution_count": 54, + "id": "98b76ece", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"state\"] = df[\"state\"].fillna(\"Unknown\")" + ] + }, + { + "cell_type": "code", + "execution_count": 55, + "id": "34c89916", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "customer_lifetime_value 8\n", + "customer 1\n", + "education 1\n", + "monthly_premium_auto 1\n", + "income 1\n", + "vehicle_class 1\n", + "total_claim_amount 1\n", + "number_of_open_complaints 1\n", + "policy_type 1\n", + "st 0\n", + "gender 0\n", + "state 0\n", + "gender 0\n", + "dtype: int64" + ] + }, + "execution_count": 55, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "\n", + "df.isnull().sum().sort_values(ascending=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 56, + "id": "3ad70109", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['gender'], dtype='str')" + ] + }, + "execution_count": 56, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns[df.columns.duplicated()]" + ] + }, + { + "cell_type": "code", + "execution_count": 57, + "id": "18151b2a", + "metadata": {}, + "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", + "
gendergender
0UnknownUnknown
1FUnknown
2FUnknown
3MUnknown
4MUnknown
.........
12069UnknownM
12070UnknownF
12071UnknownM
12072UnknownM
12073UnknownM
\n", + "

9135 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " gender gender\n", + "0 Unknown Unknown\n", + "1 F Unknown\n", + "2 F Unknown\n", + "3 M Unknown\n", + "4 M Unknown\n", + "... ... ...\n", + "12069 Unknown M\n", + "12070 Unknown F\n", + "12071 Unknown M\n", + "12072 Unknown M\n", + "12073 Unknown M\n", + "\n", + "[9135 rows x 2 columns]" + ] + }, + "execution_count": 57, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.loc[:, \"gender\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 59, + "id": "d90ae600", + "metadata": {}, + "outputs": [], + "source": [ + "gender_cols = df.loc[:, \"gender\"]\n", + "\n", + "df[\"gender\"] = gender_cols.apply(\n", + " lambda row: next(\n", + " (x for x in row if x != \"Unknown\"),\n", + " \"Unknown\"\n", + " ),\n", + " axis=1\n", + ")\n" + ] + }, + { + "cell_type": "code", + "execution_count": 60, + "id": "414de991", + "metadata": {}, + "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", + "
gendergender
0UnknownUnknown
1FF
2FF
3MM
4MM
.........
12069MM
12070FF
12071MM
12072MM
12073MM
\n", + "

9135 rows × 2 columns

\n", + "
" + ], + "text/plain": [ + " gender gender\n", + "0 Unknown Unknown\n", + "1 F F\n", + "2 F F\n", + "3 M M\n", + "4 M M\n", + "... ... ...\n", + "12069 M M\n", + "12070 F F\n", + "12071 M M\n", + "12072 M M\n", + "12073 M M\n", + "\n", + "[9135 rows x 2 columns]" + ] + }, + "execution_count": 60, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.loc[:, \"gender\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 63, + "id": "41b55fd9", + "metadata": {}, + "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", + "
customerstgendereducationcustomer_lifetime_valueincomemonthly_premium_autonumber_of_open_complaintspolicy_typevehicle_classtotal_claim_amountstate
0RB50392WashingtonUnknownMasterNaN0.01000.01/0/00Personal AutoFour-Door Car2.704934Unknown
1QZ44356ArizonaFBachelor697953.59%0.094.01/0/00Personal AutoFour-Door Car1131.464935Unknown
2AI49188NevadaFBachelor1288743.17%48767.0108.01/0/00Personal AutoTwo-Door Car566.472247Unknown
3WW63253CaliforniaMBachelor764586.18%0.0106.01/0/00Corporate AutoSUV529.881344Unknown
4GA49547WashingtonMHigh School or Below536307.65%36357.068.01/0/00Personal AutoFour-Door Car17.269323Unknown
.......................................
12069LA72316UnknownMBachelor23405.9879871941.073.00Personal AutoFour-Door Car198.234764California
12070PK87824UnknownFCollege3096.51121721604.079.00Corporate AutoFour-Door Car379.200000California
12071TD14365UnknownMBachelor8163.8904280.085.03Corporate AutoFour-Door Car790.784983California
12072UP19263UnknownMCollege7524.44243621941.096.00Personal AutoFour-Door Car691.200000California
12073Y167826UnknownMCollege2611.8368660.077.00Corporate AutoTwo-Door Car369.600000California
\n", + "

9135 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " customer st gender education \\\n", + "0 RB50392 Washington Unknown Master \n", + "1 QZ44356 Arizona F Bachelor \n", + "2 AI49188 Nevada F Bachelor \n", + "3 WW63253 California M Bachelor \n", + "4 GA49547 Washington M High School or Below \n", + "... ... ... ... ... \n", + "12069 LA72316 Unknown M Bachelor \n", + "12070 PK87824 Unknown F College \n", + "12071 TD14365 Unknown M Bachelor \n", + "12072 UP19263 Unknown M College \n", + "12073 Y167826 Unknown M College \n", + "\n", + " customer_lifetime_value income monthly_premium_auto \\\n", + "0 NaN 0.0 1000.0 \n", + "1 697953.59% 0.0 94.0 \n", + "2 1288743.17% 48767.0 108.0 \n", + "3 764586.18% 0.0 106.0 \n", + "4 536307.65% 36357.0 68.0 \n", + "... ... ... ... \n", + "12069 23405.98798 71941.0 73.0 \n", + "12070 3096.511217 21604.0 79.0 \n", + "12071 8163.890428 0.0 85.0 \n", + "12072 7524.442436 21941.0 96.0 \n", + "12073 2611.836866 0.0 77.0 \n", + "\n", + " number_of_open_complaints policy_type vehicle_class \\\n", + "0 1/0/00 Personal Auto Four-Door Car \n", + "1 1/0/00 Personal Auto Four-Door Car \n", + "2 1/0/00 Personal Auto Two-Door Car \n", + "3 1/0/00 Corporate Auto SUV \n", + "4 1/0/00 Personal Auto Four-Door Car \n", + "... ... ... ... \n", + "12069 0 Personal Auto Four-Door Car \n", + "12070 0 Corporate Auto Four-Door Car \n", + "12071 3 Corporate Auto Four-Door Car \n", + "12072 0 Personal Auto Four-Door Car \n", + "12073 0 Corporate Auto Two-Door Car \n", + "\n", + " total_claim_amount state \n", + "0 2.704934 Unknown \n", + "1 1131.464935 Unknown \n", + "2 566.472247 Unknown \n", + "3 529.881344 Unknown \n", + "4 17.269323 Unknown \n", + "... ... ... \n", + "12069 198.234764 California \n", + "12070 379.200000 California \n", + "12071 790.784983 California \n", + "12072 691.200000 California \n", + "12073 369.600000 California \n", + "\n", + "[9135 rows x 12 columns]" + ] + }, + "execution_count": 63, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df = df.loc[:, ~df.columns.duplicated()]\n", + "\n", + "df" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "be1ce5d6", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "['Unknown', 'F', 'M', 'Femal', 'Male', 'female']\n", + "Length: 6, dtype: str\n" + ] + } + ], + "source": [ + "print(df[\"gender\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 65, + "id": "b2ab46b3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "gender\n", + "F 4557\n", + "M 4368\n", + "Unknown 123\n", + "Male 40\n", + "female 30\n", + "Femal 17\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 65, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"gender\"].value_counts(dropna=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 66, + "id": "a092449f", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"gender\"] = df[\"gender\"].replace({\n", + " \"Femal\": \"F\",\n", + " \"female\": \"F\",\n", + " \"Male\": \"M\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "id": "d7481ba1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "gender\n", + "F 4604\n", + "M 4408\n", + "Unknown 123\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 67, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"gender\"].value_counts(dropna=False)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 68, + "id": "31680079", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "['Washington', 'Arizona', 'Nevada', 'California', 'Oregon',\n", + " 'Cali', 'AZ', 'WA', 'Unknown']\n", + "Length: 9, dtype: str\n" + ] + } + ], + "source": [ + "print(df[\"st\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 69, + "id": "e7434069", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"st\"] = df[\"st\"].replace({\n", + " \"WA\": \"Washington\",\n", + " \"AZ\": \"Arizona\",\n", + " \"Cali\": \"California\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 70, + "id": "2dbe8664", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "['Washington', 'Arizona', 'Nevada', 'California', 'Oregon', 'Unknown']\n", + "Length: 6, dtype: str\n" + ] + } + ], + "source": [ + "print(df[\"st\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 71, + "id": "38f054f8", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "[ 'Master', 'Bachelor', 'High School or Below',\n", + " 'College', 'Bachelors', 'Doctor',\n", + " nan]\n", + "Length: 7, dtype: str\n" + ] + } + ], + "source": [ + "print(df[\"education\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 72, + "id": "9a99d563", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"education\"] = df[\"education\"].replace({\n", + " \"Bachelors\": \"Bachelor\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 73, + "id": "199c8756", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "['Master', 'Bachelor', 'High School or Below', 'College', 'Doctor', nan]\n", + "Length: 6, dtype: str\n" + ] + } + ], + "source": [ + "print(df[\"education\"].unique())" + ] + }, + { + "cell_type": "code", + "execution_count": 74, + "id": "3dc834b0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 NaN\n", + "1 697953.59%\n", + "2 1288743.17%\n", + "3 764586.18%\n", + "4 536307.65%\n", + "Name: customer_lifetime_value, dtype: object" + ] + }, + "execution_count": 74, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"customer_lifetime_value\"].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 75, + "id": "82bf3f31", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"customer_lifetime_value\"] = df[\"customer_lifetime_value\"].str.replace(\"%\", \"\", regex=False)" + ] + }, + { + "cell_type": "code", + "execution_count": 76, + "id": "bc1f6e9c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 NaN\n", + "1 697953.59\n", + "2 1288743.17\n", + "3 764586.18\n", + "4 536307.65\n", + "Name: customer_lifetime_value, dtype: object" + ] + }, + "execution_count": 76, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"customer_lifetime_value\"].head()" + ] + }, + { + "cell_type": "code", + "execution_count": 77, + "id": "c238544f", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "['Four-Door Car', 'Two-Door Car', 'SUV', 'Luxury SUV',\n", + " 'Sports Car', 'Luxury Car', nan]\n", + "Length: 7, dtype: str" + ] + }, + "execution_count": 77, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"vehicle_class\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 78, + "id": "5e95ae4d", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"vehicle_class\"] = df[\"vehicle_class\"].replace({\n", + " \"Luxury SUV\": \"Luxury\",\n", + " \"Sports Car\": \"Luxury\",\n", + " \"Luxury Car\": \"Luxury\"\n", + "})" + ] + }, + { + "cell_type": "code", + "execution_count": 79, + "id": "556189cc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "['Four-Door Car', 'Two-Door Car', 'SUV', 'Luxury', nan]\n", + "Length: 5, dtype: str" + ] + }, + "execution_count": 79, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"vehicle_class\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 80, + "id": "821bb356", + "metadata": {}, + "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", + "
customerstgendereducationcustomer_lifetime_valueincomemonthly_premium_autonumber_of_open_complaintspolicy_typevehicle_classtotal_claim_amountstate
0RB50392WashingtonUnknownMasterNaN0.01000.01/0/00Personal AutoFour-Door Car2.704934Unknown
1QZ44356ArizonaFBachelor697953.590.094.01/0/00Personal AutoFour-Door Car1131.464935Unknown
2AI49188NevadaFBachelor1288743.1748767.0108.01/0/00Personal AutoTwo-Door Car566.472247Unknown
3WW63253CaliforniaMBachelor764586.180.0106.01/0/00Corporate AutoSUV529.881344Unknown
4GA49547WashingtonMHigh School or Below536307.6536357.068.01/0/00Personal AutoFour-Door Car17.269323Unknown
.......................................
12069LA72316UnknownMBachelorNaN71941.073.00Personal AutoFour-Door Car198.234764California
12070PK87824UnknownFCollegeNaN21604.079.00Corporate AutoFour-Door Car379.200000California
12071TD14365UnknownMBachelorNaN0.085.03Corporate AutoFour-Door Car790.784983California
12072UP19263UnknownMCollegeNaN21941.096.00Personal AutoFour-Door Car691.200000California
12073Y167826UnknownMCollegeNaN0.077.00Corporate AutoTwo-Door Car369.600000California
\n", + "

9135 rows × 12 columns

\n", + "
" + ], + "text/plain": [ + " customer st gender education \\\n", + "0 RB50392 Washington Unknown Master \n", + "1 QZ44356 Arizona F Bachelor \n", + "2 AI49188 Nevada F Bachelor \n", + "3 WW63253 California M Bachelor \n", + "4 GA49547 Washington M High School or Below \n", + "... ... ... ... ... \n", + "12069 LA72316 Unknown M Bachelor \n", + "12070 PK87824 Unknown F College \n", + "12071 TD14365 Unknown M Bachelor \n", + "12072 UP19263 Unknown M College \n", + "12073 Y167826 Unknown M College \n", + "\n", + " customer_lifetime_value income monthly_premium_auto \\\n", + "0 NaN 0.0 1000.0 \n", + "1 697953.59 0.0 94.0 \n", + "2 1288743.17 48767.0 108.0 \n", + "3 764586.18 0.0 106.0 \n", + "4 536307.65 36357.0 68.0 \n", + "... ... ... ... \n", + "12069 NaN 71941.0 73.0 \n", + "12070 NaN 21604.0 79.0 \n", + "12071 NaN 0.0 85.0 \n", + "12072 NaN 21941.0 96.0 \n", + "12073 NaN 0.0 77.0 \n", + "\n", + " number_of_open_complaints policy_type vehicle_class \\\n", + "0 1/0/00 Personal Auto Four-Door Car \n", + "1 1/0/00 Personal Auto Four-Door Car \n", + "2 1/0/00 Personal Auto Two-Door Car \n", + "3 1/0/00 Corporate Auto SUV \n", + "4 1/0/00 Personal Auto Four-Door Car \n", + "... ... ... ... \n", + "12069 0 Personal Auto Four-Door Car \n", + "12070 0 Corporate Auto Four-Door Car \n", + "12071 3 Corporate Auto Four-Door Car \n", + "12072 0 Personal Auto Four-Door Car \n", + "12073 0 Corporate Auto Two-Door Car \n", + "\n", + " total_claim_amount state \n", + "0 2.704934 Unknown \n", + "1 1131.464935 Unknown \n", + "2 566.472247 Unknown \n", + "3 529.881344 Unknown \n", + "4 17.269323 Unknown \n", + "... ... ... \n", + "12069 198.234764 California \n", + "12070 379.200000 California \n", + "12071 790.784983 California \n", + "12072 691.200000 California \n", + "12073 369.600000 California \n", + "\n", + "[9135 rows x 12 columns]" + ] + }, + "execution_count": 80, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 81, + "id": "4a820327", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array(['1/0/00', '1/2/00', '1/1/00', '1/3/00', '1/5/00', '1/4/00', nan, 0,\n", + " 2, 3, 1, 5, 4], dtype=object)" + ] + }, + "execution_count": 81, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"number_of_open_complaints\"].unique()" + ] + }, + { + "cell_type": "code", + "execution_count": 82, + "id": "b1503ae8", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"number_of_open_complaints\"] = (\n", + " df[\"number_of_open_complaints\"]\n", + " .str.split(\"/\")\n", + " .str[1]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 83, + "id": "dcf051c4", + "metadata": {}, + "outputs": [], + "source": [ + "df[\"number_of_open_complaints\"] = pd.to_numeric(\n", + " df[\"number_of_open_complaints\"]\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 86, + "id": "e638ff1d", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "dtype('float64')" + ] + }, + "execution_count": 86, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"number_of_open_complaints\"].dtype" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "184af484", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "0 0.0\n", + "1 0.0\n", + "2 0.0\n", + "3 0.0\n", + "4 0.0\n", + "5 0.0\n", + "6 0.0\n", + "7 0.0\n", + "8 0.0\n", + "9 0.0\n", + "10 0.0\n", + "11 0.0\n", + "12 2.0\n", + "13 1.0\n", + "14 2.0\n", + "15 1.0\n", + "16 0.0\n", + "17 0.0\n", + "18 0.0\n", + "19 0.0\n", + "20 0.0\n", + "21 1.0\n", + "22 0.0\n", + "23 3.0\n", + "24 0.0\n", + "25 0.0\n", + "26 0.0\n", + "27 0.0\n", + "28 2.0\n", + "29 1.0\n", + "30 1.0\n", + "31 0.0\n", + "32 0.0\n", + "33 0.0\n", + "34 0.0\n", + "35 0.0\n", + "36 0.0\n", + "37 0.0\n", + "38 0.0\n", + "39 2.0\n", + "40 1.0\n", + "41 0.0\n", + "42 0.0\n", + "43 0.0\n", + "44 1.0\n", + "45 3.0\n", + "46 3.0\n", + "47 0.0\n", + "48 0.0\n", + "49 0.0\n", + "Name: number_of_open_complaints, dtype: float64" + ] + }, + "execution_count": 87, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"number_of_open_complaints\"].head(50)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 90, + "id": "febc4bc2", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "customer str\n", + "st str\n", + "gender str\n", + "education str\n", + "customer_lifetime_value object\n", + "income float64\n", + "monthly_premium_auto float64\n", + "number_of_open_complaints float64\n", + "policy_type str\n", + "vehicle_class str\n", + "total_claim_amount float64\n", + "state str\n", + "dtype: object" + ] + }, + "execution_count": 90, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.dtypes" ] }, { @@ -72,14 +3043,18 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 93, "id": "aa10d9b0-1c27-4d3f-a8e4-db6ab73bfd26", "metadata": { "id": "aa10d9b0-1c27-4d3f-a8e4-db6ab73bfd26" }, "outputs": [], "source": [ - "# Your code goes here" + "# Your code goes here\n", + "\n", + "url = \"https://raw.githubusercontent.com/data-bootcamp-v4/data/main/marketing_customer_analysis_clean.csv\"\n", + "\n", + "df = pd.read_csv(url)" ] }, { @@ -103,6 +3078,602 @@ "2. Create a pivot table that shows the average customer lifetime value per gender and education level. Analyze the resulting table to draw insights." ] }, + { + "cell_type": "code", + "execution_count": null, + "id": "3d52cf0c", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(10910, 27)" + ] + }, + "execution_count": 94, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.shape" + ] + }, + { + "cell_type": "code", + "execution_count": 95, + "id": "bf6758f6", + "metadata": {}, + "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", + "
unnamed:_0customerstatecustomer_lifetime_valueresponsecoverageeducationeffective_to_dateemploymentstatusgender...number_of_policiespolicy_typepolicyrenew_offer_typesales_channeltotal_claim_amountvehicle_classvehicle_sizevehicle_typemonth
00DK49336Arizona4809.216960NoBasicCollege2011-02-18EmployedM...9Corporate AutoCorporate L3Offer3Agent292.800000Four-Door CarMedsizeA2
11KX64629California2228.525238NoBasicCollege2011-01-18UnemployedF...1Personal AutoPersonal L3Offer4Call Center744.924331Four-Door CarMedsizeA1
22LZ68649Washington14947.917300NoBasicBachelor2011-02-10EmployedM...2Personal AutoPersonal L3Offer3Call Center480.000000SUVMedsizeA2
33XL78013Oregon22332.439460YesExtendedCollege2011-01-11EmployedM...2Corporate AutoCorporate L3Offer2Branch484.013411Four-Door CarMedsizeA1
44QA50777Oregon9025.067525NoPremiumBachelor2011-01-17Medical LeaveF...7Personal AutoPersonal L2Offer1Branch707.925645Four-Door CarMedsizeA1
\n", + "

5 rows × 27 columns

\n", + "
" + ], + "text/plain": [ + " unnamed:_0 customer state customer_lifetime_value response \\\n", + "0 0 DK49336 Arizona 4809.216960 No \n", + "1 1 KX64629 California 2228.525238 No \n", + "2 2 LZ68649 Washington 14947.917300 No \n", + "3 3 XL78013 Oregon 22332.439460 Yes \n", + "4 4 QA50777 Oregon 9025.067525 No \n", + "\n", + " coverage education effective_to_date employmentstatus gender ... \\\n", + "0 Basic College 2011-02-18 Employed M ... \n", + "1 Basic College 2011-01-18 Unemployed F ... \n", + "2 Basic Bachelor 2011-02-10 Employed M ... \n", + "3 Extended College 2011-01-11 Employed M ... \n", + "4 Premium Bachelor 2011-01-17 Medical Leave F ... \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", + " 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", + " vehicle_type month \n", + "0 A 2 \n", + "1 A 1 \n", + "2 A 2 \n", + "3 A 1 \n", + "4 A 1 \n", + "\n", + "[5 rows x 27 columns]" + ] + }, + "execution_count": 95, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.head()" + ] + }, + { + "cell_type": "code", + "execution_count": 96, + "id": "9db878a3", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "Index(['unnamed:_0', 'customer', 'state', 'customer_lifetime_value',\n", + " 'response', 'coverage', 'education', 'effective_to_date',\n", + " 'employmentstatus', 'gender', 'income', 'location_code',\n", + " 'marital_status', 'monthly_premium_auto', 'months_since_last_claim',\n", + " 'months_since_policy_inception', 'number_of_open_complaints',\n", + " 'number_of_policies', 'policy_type', 'policy', 'renew_offer_type',\n", + " 'sales_channel', 'total_claim_amount', 'vehicle_class', 'vehicle_size',\n", + " 'vehicle_type', 'month'],\n", + " dtype='str')" + ] + }, + "execution_count": 96, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df.columns" + ] + }, + { + "cell_type": "code", + "execution_count": 97, + "id": "8c2c2566", + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\n", + "RangeIndex: 10910 entries, 0 to 10909\n", + "Data columns (total 27 columns):\n", + " # Column Non-Null Count Dtype \n", + "--- ------ -------------- ----- \n", + " 0 unnamed:_0 10910 non-null int64 \n", + " 1 customer 10910 non-null str \n", + " 2 state 10910 non-null str \n", + " 3 customer_lifetime_value 10910 non-null float64\n", + " 4 response 10910 non-null str \n", + " 5 coverage 10910 non-null str \n", + " 6 education 10910 non-null str \n", + " 7 effective_to_date 10910 non-null str \n", + " 8 employmentstatus 10910 non-null str \n", + " 9 gender 10910 non-null str \n", + " 10 income 10910 non-null int64 \n", + " 11 location_code 10910 non-null str \n", + " 12 marital_status 10910 non-null str \n", + " 13 monthly_premium_auto 10910 non-null int64 \n", + " 14 months_since_last_claim 10910 non-null float64\n", + " 15 months_since_policy_inception 10910 non-null int64 \n", + " 16 number_of_open_complaints 10910 non-null float64\n", + " 17 number_of_policies 10910 non-null int64 \n", + " 18 policy_type 10910 non-null str \n", + " 19 policy 10910 non-null str \n", + " 20 renew_offer_type 10910 non-null str \n", + " 21 sales_channel 10910 non-null str \n", + " 22 total_claim_amount 10910 non-null float64\n", + " 23 vehicle_class 10910 non-null str \n", + " 24 vehicle_size 10910 non-null str \n", + " 25 vehicle_type 10910 non-null str \n", + " 26 month 10910 non-null int64 \n", + "dtypes: float64(4), int64(6), str(17)\n", + "memory usage: 2.2 MB\n" + ] + } + ], + "source": [ + "df.info()" + ] + }, + { + "cell_type": "code", + "execution_count": 99, + "id": "e5d2c064", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "sales_channel\n", + "Agent 4121\n", + "Branch 3022\n", + "Call Center 2141\n", + "Web 1626\n", + "Name: count, dtype: int64" + ] + }, + "execution_count": 99, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"sales_channel\"].value_counts()" + ] + }, + { + "cell_type": "code", + "execution_count": 107, + "id": "665ab6de", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "count 10910.000000\n", + "mean 8018.241094\n", + "std 6885.081434\n", + "min 1898.007675\n", + "25% 4014.453113\n", + "50% 5771.147235\n", + "75% 8992.779137\n", + "max 83325.381190\n", + "Name: customer_lifetime_value, dtype: float64" + ] + }, + "execution_count": 107, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df[\"customer_lifetime_value\"].describe()" + ] + }, + { + "cell_type": "code", + "execution_count": 108, + "id": "9fd64735", + "metadata": {}, + "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", + "
customer_lifetime_value
sales_channel
Agent33057887.85
Branch24359201.21
Call Center17364288.37
Web12697632.90
\n", + "
" + ], + "text/plain": [ + " customer_lifetime_value\n", + "sales_channel \n", + "Agent 33057887.85\n", + "Branch 24359201.21\n", + "Call Center 17364288.37\n", + "Web 12697632.90" + ] + }, + "execution_count": 108, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot_revenue = pd.pivot_table(\n", + " df,\n", + " values=\"customer_lifetime_value\",\n", + " index=\"sales_channel\",\n", + " aggfunc=\"sum\"\n", + ")\n", + "\n", + "pivot_revenue.round(2)" + ] + }, + { + "cell_type": "code", + "execution_count": 110, + "id": "983fae53", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "np.float64(87479010.33252)" + ] + }, + "execution_count": 110, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "total = pivot_revenue[\"customer_lifetime_value\"].sum()\n", + "total" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "47697e53", + "metadata": {}, + "outputs": [], + "source": [ + "pivot_revenue[\"percentage\"] = pivot_revenue[\"customer_lifetime_value\"] / total * 100\n", + "\n" + ] + }, + { + "cell_type": "code", + "execution_count": 114, + "id": "e643f5b6", + "metadata": {}, + "outputs": [], + "source": [ + "pivot_revenue = pivot_revenue.sort_values(\n", + " by=\"customer_lifetime_value\",\n", + " ascending=False\n", + ")" + ] + }, + { + "cell_type": "code", + "execution_count": 115, + "id": "6f232d6d", + "metadata": {}, + "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", + "
customer_lifetime_valuepercentage
sales_channel
Agent3.305789e+0737.789508
Branch2.435920e+0727.845767
Call Center1.736429e+0719.849663
Web1.269763e+0714.515062
\n", + "
" + ], + "text/plain": [ + " customer_lifetime_value percentage\n", + "sales_channel \n", + "Agent 3.305789e+07 37.789508\n", + "Branch 2.435920e+07 27.845767\n", + "Call Center 1.736429e+07 19.849663\n", + "Web 1.269763e+07 14.515062" + ] + }, + "execution_count": 115, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "pivot_revenue" + ] + }, + { + "cell_type": "markdown", + "id": "aae7da7a", + "metadata": {}, + "source": [ + "My insights:\n", + "\n", + "The Agent channel generate the highest revenue and Web the lowest.\n", + "More than 50% of the sales were generated by Agent and Branch channels." + ] + }, { "cell_type": "markdown", "id": "32c7f2e5-3d90-43e5-be33-9781b6069198", @@ -146,7 +3717,7 @@ "provenance": [] }, "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": "Python 3", "language": "python", "name": "python3" }, @@ -160,7 +3731,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.9.13" + "version": "3.14.5" } }, "nbformat": 4,