aboutsummaryrefslogtreecommitdiff
path: root/CS105MiniProject.ipynb
diff options
context:
space:
mode:
authorGravatar Anshul Gupta <ansg191@anshulg.com> 2024-02-22 22:15:21 -0800
committerGravatar Anshul Gupta <ansg191@anshulg.com> 2024-02-22 22:15:21 -0800
commit53863f0c1c5bf6f31c50b1efb2c4d00df811a095 (patch)
tree093fc4569ae453f37fc4a1ae0e4de8344c0adc38 /CS105MiniProject.ipynb
parent431bff4fe84778d8bfa70ee7f712ec892883b969 (diff)
parent3036e854b98315b7086bc06a3c585645a46a17b6 (diff)
downloadCS105MiniProject-53863f0c1c5bf6f31c50b1efb2c4d00df811a095.tar.gz
CS105MiniProject-53863f0c1c5bf6f31c50b1efb2c4d00df811a095.tar.zst
CS105MiniProject-53863f0c1c5bf6f31c50b1efb2c4d00df811a095.zip
Merge branch 'main' into pie-chart
Diffstat (limited to 'CS105MiniProject.ipynb')
-rw-r--r--CS105MiniProject.ipynb172
1 files changed, 101 insertions, 71 deletions
diff --git a/CS105MiniProject.ipynb b/CS105MiniProject.ipynb
index dd77c8f..35ebf16 100644
--- a/CS105MiniProject.ipynb
+++ b/CS105MiniProject.ipynb
@@ -1,6 +1,30 @@
{
"cells": [
{
+ "cell_type": "markdown",
+ "source": [
+ "<div>\n",
+ " <h1><center>CS105 Mini-Project</center></h1>\n",
+ " <h2><center>Does who a student is living with effect if and how they work jobs?</center></h2>\n",
+ " <p>By: <b>NAMES HERE</b></p>\n",
+ "</div>"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "21abd26c73fd0070"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [
+ "# Data Loading & Preprocessing"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "69d8e8ad7c61ba61"
+ },
+ {
"cell_type": "code",
"execution_count": 54,
"id": "daa13044",
@@ -316,13 +340,29 @@
"%matplotlib inline\n",
"import pandas as pd\n",
"import numpy as np\n",
+ "import seaborn as sns\n",
+ "import matplotlib\n",
+ "import matplotlib.pyplot as plt\n",
"\n",
+ "# Load dataframe from data.csv\n",
"df = pd.read_csv(\"data.csv\")\n",
- "df = df.iloc[:, [0, 2, 7, 8, 9, 58, 59, 60, 61, 26]]\n",
+ "\n",
+ "# Select relevant columns\n",
+ "df = df.iloc[:, [2, 3, 7, 8, 9, 58, 59, 60, 61, 26]]\n",
"df"
]
},
{
+ "cell_type": "markdown",
+ "source": [
+ "## Preprocessing"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "3f7614a5665d55b6"
+ },
+ {
"cell_type": "code",
"execution_count": 55,
"id": "29889175",
@@ -630,6 +670,10 @@
}
],
"source": [
+ "# Fixes empty values\n",
+ "df['Do you currently work?'] = df['Do you currently work?'].fillna('No')\n",
+ "\n",
+ "# Replaces custom text answers with appropriate values\n",
"df['How many people live in your household?'] = (df['How many people live in your household?']\n",
" .fillna(0)\n",
" .replace('4 in total', '4')\n",
@@ -640,9 +684,15 @@
" .replace('North District 4 bed 2 bath', '4')\n",
" .replace('3 (room), 8 (hall), ~70 (building)', '3')\n",
" .astype(int))\n",
+ "df['Who do you live with? '] = df['Who do you live with? '].replace('Family, Friends', 'Both').replace(\n",
+ " 'Family, Friends, Both', 'Both')\n",
+ "df['Do you currently live in a house, apartnment, or dorm? '] = (\n",
+ " df['Do you currently live in a house, apartnment, or dorm? ']\n",
+ " .replace('house (renting)', 'House'))\n",
+ "# Normalizes non-applicable answers\n",
"df.loc[df['Do you currently work?'] == 'No', 'How many hours do you work per week on average?'] = 0\n",
- "df['Who do you live with? '] = df['Who do you live with? '].replace('Family, Friends', 'Both').replace('Family, Friends, Both', 'Both')\n",
"df.loc[df['Do you currently work?'] == 'No', 'Do you work in a department related to your major?'] = np.nan\n",
+ "\n",
"df"
]
},
@@ -1279,41 +1329,13 @@
"collapsed": false
},
"source": [
- "<div>\n",
- " <h1>CS105 Project</h2>\n",
- " <p>Ali Naqvi, ...</p>\n",
- " <p>Topic: Does who a student is living with effect if and how they work jobs?</p>\n",
- "</div>\n"
+ "# Analysis"
]
},
{
"cell_type": "code",
- "execution_count": 58,
- "id": "bfa40c9e9693481d",
- "metadata": {
- "ExecuteTime": {
- "end_time": "2024-02-23T01:01:41.526696Z",
- "start_time": "2024-02-23T01:01:41.430135Z"
- },
- "collapsed": false
- },
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAnwAAAKQCAYAAAAFa6evAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8pXeV/AAAACXBIWXMAAA9hAAAPYQGoP6dpAABgbElEQVR4nO3deXyU5aH+/+uZLctkT0gCBMKObIIgilAFCtYWa3tc6tFWq22tHk/b0/ZbT+2352e19py61VZrS/darUtr3VvO14UKrogCgiDIko1AyEL2zExmfX5/IJEIWUnyzDzzeb9evDQzk5krmZnkyv08930bpmmaAgAAgG05rA4AAACA4UXhAwAAsDkKHwAAgM1R+AAAAGyOwgcAAGBzFD4AAACbo/ABAADYHIUPAADA5ih8AAAANkfhs6E//elPMgyj619qaqqKi4u1fPly3Xbbbaqvrz/uc2655RYZhjGgx/H7/brlllu0fv36AX3eiR5rwoQJ+vSnPz2g++nLI488onvuueeE1xmGoVtuuWVIH2+o/fOf/9Tpp58ur9crwzD09NNPn/B2lZWV3Z5vh8Oh/Px8rVq1Shs2bBjZ0D24+uqrNWHChCG5r8cff1yGYeivf/3rcdfNnTtXhmHo+eefP+66yZMna/78+V0fG4ahr3/960OS6USi0ahycnL0qU996rjrfvazn8kwDF1++eXHXfejH/1IhmHo3XffHZIcV199tTIyMobkvobThAkTdPXVV/d5u2Nf606nU7m5uZo7d66uu+46vfnmm8MfVEd+hn309fzjH/+4x/fosXhdwCoUPhu7//77tWHDBr344ov65S9/qXnz5umOO+7QjBkztHbt2m63veaaawZcDvx+v374wx8OuPAN5rEGo7fCt2HDBl1zzTXDnmGwTNPUpZdeKrfbrWeffVYbNmzQ0qVLe/2cb3zjG9qwYYNeffVV3Xbbbdq2bZuWL1+ud955Z4RSj4xly5bJMAytW7eu2+VNTU3avn27vF7vcdcdOHBA5eXlWr58+YjldDqdOvvss/Xaa68pEol0u279+vUnzHn0uvz8fM2ZM2ekoiacSy65RBs2bNBrr72mv/zlL/riF7+oN998U2eddZa++c1vWpKpv4WP1wWsQuGzsdmzZ2vRokU6++yzdfHFF+tnP/uZ3n33XXm9Xl100UWqq6vrum1JSYkWLVo0rHn8fv+IPVZfFi1apJKSEksz9KampkZNTU268MILtWLFCi1atEi5ubm9fs748eO1aNEiLVmyRNdee63+/Oc/KxgMavXq1SOUemQUFBRo9uzZx/2h8fLLL8vlcukrX/nKcb8wj348koXv6ON1dHRo06ZNXZfFYjG9+uqruv7661VXV6ddu3Z1XRcKhbRhw4auUnsyjr7f7KioqEiLFi3SWWedpfPOO0/f+c53tGXLFn35y1/Wz3/+c/3qV7+yOmKveF3AChS+JDN+/Hjdfffdam9v129+85uuy090mPWll17SsmXLlJ+fr7S0NI0fP14XX3yx/H6/KisrNWrUKEnSD3/4w65DLEcPyRy9vy1btuiSSy5Rbm6uJk+e3ONjHfXUU0/p1FNPVWpqqiZNmqSf//zn3a4/eri6srKy2+Xr16+XYRhdJWDZsmVas2aNqqqquh0COupEh3R37Nihz372s8rNzVVqaqrmzZunBx544ISP8+ijj+q//uu/NGbMGGVlZWnlypXavXt3z9/4Y7z22mtasWKFMjMzlZ6ersWLF2vNmjVd199yyy1dZfTGG2+UYRiDOhx6tFRXVVV1XbZ27VqtWLFCWVlZSk9P15IlS/TPf/5zwBmlD5+LF198UV/60peUl5cnr9erCy64QOXl5X3mM01Tq1ev1rx585SWlqbc3Fxdcskl/frc5cuXa/fu3Tp06FDXZevXr9fChQu1atUqbd68We3t7d2uOzqy8lF//vOfNWPGDKWnp2vu3Ln6xz/+MajvR085jz7+Udu2bVNzc7OuvfZajR49uls53bhxowKBQLdi+uyzz+qss85Senq6MjMzde655x43Qt7b++1EXn/9dRUUFOjTn/60fD5fj7fbtGmTLrvsMk2YMEFpaWmaMGGCLr/88m6vKenD18K6det0/fXXq6CgQPn5+broootUU1PT7bbhcFjf/e53VVxcrPT0dH3sYx/TW2+91fM3sZ+cTqd+8YtfqKCgQHfddVe36/bv368rrrhChYWFSklJ0YwZM3T33XcrFot13eboqRE/+clP9NOf/lQTJ05URkaGzjrrrD4PFRuGIZ/PpwceeKDrZ82yZct6vH2ivy6QmCh8SWjVqlVyOp165ZVXerxNZWWlzj//fHk8Hv3xj3/Uc889p9tvv11er1ehUEijR4/Wc889J0n6yle+og0bNmjDhg266aabut3PRRddpClTpuhvf/ubfv3rX/eaa+vWrfrWt76lb3/723rqqae0ePFiffOb39RPfvKTAX+Nq1ev1pIlS1RcXNyVrbfDyLt379bixYv13nvv6ec//7mefPJJzZw5U1dffbXuvPPO427//e9/X1VVVfr973+v3/72t9q7d68uuOACRaPRXnO9/PLL+vjHP67W1lb94Q9/0KOPPqrMzExdcMEFXeekXXPNNXryySclfXiY9qmnnhrw92Dfvn2S1FXMH3roIX3iE59QVlaWHnjgAT322GPKy8vTeeed16309Sfjsb7yla/I4XB0HUJ/6623tGzZMrW0tPSa77rrrtO3vvUtrVy5Uk8//bRWr16t9957T4sXL+42+nwiJ/qFuW7dOi1dulRLliyRYRh69dVXu103f/58ZWdnd7ufNWvW6Be/+IVuvfVWPfHEE8rLy9OFF17YrXQO9PtxrLlz5yo3N7fbL+9169Zp9OjRmjp1qs4555zjvoZjv75HHnlEn/3sZ5WVlaVHH31Uf/jDH9Tc3Kxly5bptddeO+7x+vN+e+yxx7RixQpdeumleuaZZ+T1envMX1lZqenTp+uee+7R888/rzvuuEOHDh3SwoULdfjw4eNuf80118jtduuRRx7RnXfeqfXr1+uKK67odpuvfvWr+slPfqIvfvGLeuaZZ3TxxRfroosuUnNzc8/fyH5KS0vTypUrVVFRoQMHDkiSGhoatHjxYr3wwgv60Y9+pGeffVYrV67UDTfccMJzOH/5y1/qxRdf1D333KOHH35YPp9Pq1atUmtra9dtbrnllm5/dG7YsEFpaWld581u2LCh15H1RH9dIEGZsJ3777/flGS+/fbbPd6mqKjInDFjRtfHN998s3nsy+Hxxx83JZlbt27t8T4aGhpMSebNN9983HVH7+8HP/hBj9cdq7S01DQM47jHO/fcc82srCzT5/N1+9oqKiq63W7dunWmJHPdunVdl51//vlmaWnpCbN/NPdll11mpqSkmPv37+92u0996lNmenq62dLS0u1xVq1a1e12jz32mCnJ3LBhwwkf76hFixaZhYWFZnt7e9dlkUjEnD17tllSUmLGYjHTNE2zoqLClGTeddddvd7fsbe94447zHA4bHZ2dpqbN282Fy5caEoy16xZY/p8PjMvL8+84IILun1uNBo1586da55xxhkDznj0ubjwwgu73efrr79uSjL/+7//u+uyq666qttzsWHDBlOSeffdd3f73OrqajMtLc387ne/2+vX3NTUZDocDvPaa681TdM0Dx8+bBqGYT733HOmaZrmGWecYd5www2maZrm/v37TUnH3acks6ioyGxra+u6rLa21nQ4HOZtt9024O9HT/7lX/7F9Hq9ZjgcNk3TNC+44ALzsssuM03TNFevXm2OGjWq6z6WL19uFhYWmqZ55LkZM2aMOWfOHDMajXbdX3t7u1lYWGguXry467Le3m9XXXWV6fV6TdM0zdtvv910Op3mHXfc0WvmnkQiEbOjo8P0er3mvffe23X50dfCv//7v3e7/Z133mlKMg8dOmSapmnu2rXLlGR++9vf7na7hx9+2JRkXnXVVX1mkGR+7Wtf6/H6G2+80ZRkbty40TRN0/ze977X7eOjrr/+etMwDHP37t2maX74PpozZ44ZiUS6bvfWW2+ZksxHH32011xer7df+Y+y0+sCiYERviRlmmav18+bN08ej0fXXnutHnjggX4dZjuRiy++uN+3nTVrlubOndvtss9//vNqa2vTli1bBvX4/fXSSy9pxYoVGjduXLfLr776avn9/uNGBz/zmc90+/jUU0+VpOMOdR3L5/Np48aNuuSSS7rNjnM6nbryyit14MCBfh8WPpEbb7xRbrdbqampWrBggfbv36/f/OY3WrVqld544w01NTXpqquuUiQS6foXi8X0yU9+Um+//bZ8Pt+gMn7hC1/o9vHixYtVWlp6whPPj/rHP/4hwzB0xRVXdMtTXFysuXPn9jkR6OjMzKO3e/nll+V0OrVkyRJJ0tKlS7sev7fz95YvX67MzMyuj4uKilRYWNj1PA7Fc7Z8+XL5fD69/fbbXedpHT3ct3TpUjU0NOi9995TMBjUm2++2ZVz9+7dqqmp0ZVXXimH48Mf1RkZGbr44ov15ptvHnc+Vk/vN9M0dd111+nmm2/WI488ou9+97u9Zj6qo6NDN954o6ZMmSKXyyWXy6WMjAz5fL5u55gd1df74uhz8dHXzKWXXiqXy9WvTH356M+2l156STNnztQZZ5zR7fKrr75apmnqpZde6nb5+eefL6fT2ePXMFQS+XWBxDQ07zAkFJ/Pp8bGxl5ne02ePFlr167VnXfeqa997Wvy+XyaNGmS/uM//mNAs+BGjx7d79sWFxf3eFljY2O/72cwGhsbT5h1zJgxJ3z8/Pz8bh+npKRIkgKBQI+P0dzcLNM0B/Q4A/HNb35TV1xxhRwOh3JycjRx4sSu8xaPHiK95JJLevz8pqYmGYYx4Iw9PW+9fS11dXUyTVNFRUUnvH7SpEk9fu5Ry5cv109/+lPV1NRo3bp1WrBgQVcpW7p0qe6++261trZq3bp1crlc+tjHPnbcfXz0eZSOPJdHn8eheM6O/qJet26dPB6PWlpaumZcz5w5U6NGjdL69evV2NjY7Tyto/fb02PHYjE1NzcrPT296/Ke3m+hUEh//etfNWvWrBMuB9KTz3/+8/rnP/+pm266SQsXLlRWVpYMw9CqVatO+Frv631x9Gv66GvG5XKd8LkYjKPF7Njn50TnwA7le3swEvl1gcRE4UtCa9asUTQa7fWkYkk6++yzdfbZZysajWrTpk2677779K1vfUtFRUW67LLL+vVYA5lRVltb2+NlR38Ip6amSpKCwWC3253ofKKByM/P7zYB4KijJ5wXFBSc1P1LR0alHA7HsD1OSUmJTj/99BNed/R+77vvvh5nSBcVFSkcDg84Y0/P25QpU3rMWlBQ0HWe3dFfqMc60WUfdbTwrV+/XuvXr9eqVau6rjta7l555ZWuyRyDWXNsKJ6z2bNnd/3yTklJUVFRkU455ZSu68855xytW7eu6xf50V/sR1/zPT22w+E4buZ2T++3lJQUrVu3Tuedd55Wrlyp5557rs9Z362trfrHP/6hm2++Wd/73ve6Lg8Gg2pqaur1c3ty9Guqra3V2LFjuy6PRCJD8kddIBDQ2rVrNXny5K6JTyPx3h6MRH1dIHFxSDfJ7N+/XzfccIOys7N13XXX9etznE6nzjzzTP3yl7+UpK7Dq0P9l+97772nbdu2dbvskUceUWZmZteCuUf/Uv/o4qPPPvvscfd37EhNX1asWKGXXnrpuBmFDz74oNLT04dkGRmv16szzzxTTz75ZLdcsVhMDz30kEpKSjRt2rSTfpwTWbJkiXJycrRz506dfvrpJ/zn8XgGlfHhhx/u9vEbb7yhqqqqXv+g+PSnPy3TNHXw4METZunPWmPnnHOOnE6nHn/8cb333nvdHi87O7trlnVlZeWgl2MZiufMMAwtXbpUb7zxhl588cXj1lNcunSpXn75Za1bt05jxozpur/p06dr7NixeuSRR7odpvT5fHriiSe6Zmj212mnnaaXX35ZBw4c0LJly064APtHc5umeVz5/v3vf9/n5KSeHH2OPvqaeeyxx45bk26gotGovv71r6uxsVE33nhj1+UrVqzQzp07jzst5MEHH5RhGEO2VM9Aft5Iifu6QOJihM/GduzY0XVuVH19vV599VXdf//9cjqdeuqpp7pmb57Ir3/9a7300ks6//zzNX78eHV2duqPf/yjJGnlypWSpMzMTJWWluqZZ57RihUrlJeXp4KCgkHvqDBmzBh95jOf0S233KLRo0froYce0osvvqg77rij6wfYwoULNX36dN1www2KRCLKzc3VU089dcKZaXPmzNGTTz6pX/3qV1qwYIEcDkePI2A333yz/vGPf2j58uX6wQ9+oLy8PD388MNas2aN7rzzzuNmdw7WbbfdpnPPPVfLly/XDTfcII/Ho9WrV2vHjh169NFHT3qNrZ5kZGTovvvu01VXXaWmpiZdcsklKiwsVENDg7Zt26aGhoautcsGmnHTpk265ppr9LnPfU7V1dX6r//6L40dO1b//u//3mOeo2sFfulLX9KmTZt0zjnnyOv16tChQ3rttdc0Z84cXX/99b1+TVlZWZo/f76efvppORyOrvP3jlq6dGnXwtsn80t9KJ6z5cuX6/HHH9cLL7ygX/ziF8flbGxs1CuvvKLPf/7zXZc7HA7deeed+sIXvqBPf/rTuu666xQMBnXXXXeppaVFt99++4C/lhkzZujVV1/VypUrdc4552jt2rU9rkeZlZWlc845R3fddVfX+/rll1/WH/7wB+Xk5Az4sY8+/hVXXKF77rlHbrdbK1eu1I4dO/STn/xEWVlZ/b6furo6vfnmmzJNU+3t7dqxY4cefPBBbdu2Td/+9rf11a9+teu23/72t/Xggw/q/PPP16233qrS0lKtWbNGq1ev1vXXXz9kf2TNmTNH69ev19///neNHj1amZmZmj59eq+fk4ivCyQwK2aKYHgdnTF39J/H4zELCwvNpUuXmj/+8Y/N+vr64z7nozNnN2zYYF544YVmaWmpmZKSYubn55tLly41n3322W6ft3btWvO0004zU1JSus2yO3p/DQ0NfT6WaR6ZpXv++eebjz/+uDlr1izT4/GYEyZMMH/6058e9/l79uwxP/GJT5hZWVnmqFGjzG98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",
- "text/plain": [
- "<Figure size 800x800 with 1 Axes>"
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
+ "outputs": [],
"source": [
- "import matplotlib.pyplot as plt\n",
- "\n",
- "# Assuming 'df' is your DataFrame\n",
- "\n",
"# Count the number of people who work and don't work\n",
"work_counts = df['Do you currently work?'].value_counts()\n",
"\n",
@@ -1321,58 +1343,62 @@
"plt.figure(figsize=(8, 8))\n",
"plt.pie(work_counts, labels=work_counts.index, autopct='%1.1f%%', startangle=90, colors=['lightblue', 'lightcoral'])\n",
"plt.title('Distribution of People Who Work and Don\\'t Work')\n",
- "plt.show()\n"
- ]
+ "plt.show()"
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "6bc50ddc195d88a"
},
{
"cell_type": "code",
- "execution_count": 65,
- "id": "9c830283e9b26466",
+ "outputs": [],
+ "source": [
+ "df_2dhist = pd.DataFrame({\n",
+ " x_label: grp['Do you currently work?'].value_counts()\n",
+ " for x_label, grp in df.groupby('Do you currently live in a house, apartnment, or dorm? ')\n",
+ "})\n",
+ "\n",
+ "# Plot heatmap\n",
+ "plt.subplots(figsize=(8, 8))\n",
+ "sns.heatmap(df_2dhist, cmap='viridis')\n",
+ "plt.xlabel('Do you currently live in a house, apartnment, or dorm? ')\n",
+ "_ = plt.ylabel('Do you currently work?')"
+ ],
"metadata": {
- "ExecuteTime": {
- "end_time": "2024-02-23T01:01:41.532148Z",
- "start_time": "2024-02-23T01:01:41.528825Z"
- },
"collapsed": false
},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Do you have roommates that are part of your major? No Yes Total\n",
- "Do you currently live in a house, apartnment, o... \n",
- "Apartment 83 44 127\n",
- "Dorm 17 11 28\n",
- "House 77 21 98\n",
- "Room 1 0 1\n",
- "house (renting) 1 0 1\n",
- "Total 179 76 255\n"
- ]
- }
- ],
+ "id": "15f1e14311b1b17f"
+ },
+ {
+ "cell_type": "markdown",
+ "source": [],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "2b499b750ea3aec9"
+ },
+ {
+ "cell_type": "code",
+ "outputs": [],
"source": [
+ "df.groupby('Do you currently live in a house, apartnment, or dorm? ').size().plot(kind='barh',\n",
+ " color=sns.palettes.mpl_palette(\n",
+ " 'Dark2'))\n",
+ "plt.gca().spines[['top', 'right', ]].set_visible(False)\n",
"roommates_major_table = pd.crosstab(df.iloc[:, 3], df.iloc[:, 9], margins=True, margins_name='Total')\n",
"\n",
"# Print the table\n",
"print(roommates_major_table)\n"
- ]
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "2ee7f39b5d8df8de"
},
{
"cell_type": "code",
- "execution_count": 66,
- "id": "aef1e802",
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Chi-squared Value: 6.761293513057266\n",
- "Degrees of Freedom: 10\n"
- ]
- }
- ],
+ "outputs": [],
"source": [
"# Extract the observed values from the contingency table\n",
"observed_values = roommates_major_table.iloc[:-1, :-1].values\n",
@@ -1392,7 +1418,11 @@
"\n",
"# Print results\n",
"print(f\"Chi-squared Value: {chi2_statistic}\\nDegrees of Freedom: {degrees_of_freedom}\")\n"
- ]
+ ],
+ "metadata": {
+ "collapsed": false
+ },
+ "id": "957406c164cf2ef1"
}
],
"metadata": {