Number of drivers involved in fatal collisions per billion miles
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents
\n",
- "
Car Insurance Premiums ($)
\n",
- "
Region
\n",
+ "
number_drivers_fatal_billion_miles
\n",
+ "
percentage_drivers_fatal_speeding
\n",
+ "
percentage_drivers_fatal_alcohol_impaired
\n",
+ "
percentage_drivers_fatal_not_distracted
\n",
+ "
percentage_drivers_fatal_no_previous_accidents
\n",
+ "
car_insurance_premiums
\n",
+ "
region
\n",
"
\n",
" \n",
" \n",
@@ -170,57 +170,50 @@
""
],
"text/plain": [
- " State \\\n",
- "0 Alabama \n",
- "1 Alaska \n",
- "2 Arizona \n",
- "3 Arkansas \n",
- "4 California \n",
+ " State number_drivers_fatal_billion_miles \\\n",
+ "0 Alabama 18.8 \n",
+ "1 Alaska 18.1 \n",
+ "2 Arizona 18.6 \n",
+ "3 Arkansas 22.4 \n",
+ "4 California 12.0 \n",
"\n",
- " Number of drivers involved in fatal collisions per billion miles \\\n",
- "0 18.8 \n",
- "1 18.1 \n",
- "2 18.6 \n",
- "3 22.4 \n",
- "4 12.0 \n",
+ " percentage_drivers_fatal_speeding \\\n",
+ "0 39 \n",
+ "1 41 \n",
+ "2 35 \n",
+ "3 18 \n",
+ "4 35 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding \\\n",
- "0 39 \n",
- "1 41 \n",
- "2 35 \n",
- "3 18 \n",
- "4 35 \n",
+ " percentage_drivers_fatal_alcohol_impaired \\\n",
+ "0 30 \n",
+ "1 25 \n",
+ "2 28 \n",
+ "3 26 \n",
+ "4 28 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired \\\n",
- "0 30 \n",
- "1 25 \n",
- "2 28 \n",
- "3 26 \n",
- "4 28 \n",
+ " percentage_drivers_fatal_not_distracted \\\n",
+ "0 96 \n",
+ "1 90 \n",
+ "2 84 \n",
+ "3 94 \n",
+ "4 91 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted \\\n",
- "0 96 \n",
- "1 90 \n",
- "2 84 \n",
- "3 94 \n",
- "4 91 \n",
+ " percentage_drivers_fatal_no_previous_accidents car_insurance_premiums \\\n",
+ "0 80 784.55 \n",
+ "1 94 1053.48 \n",
+ "2 96 899.47 \n",
+ "3 95 827.34 \n",
+ "4 89 878.41 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents \\\n",
- "0 80 \n",
- "1 94 \n",
- "2 96 \n",
- "3 95 \n",
- "4 89 \n",
- "\n",
- " Car Insurance Premiums ($) Region \n",
- "0 784.55 Southeast \n",
- "1 1053.48 West \n",
- "2 899.47 Southeast \n",
- "3 827.34 Southeast \n",
- "4 878.41 West "
+ " region \n",
+ "0 Southeast \n",
+ "1 West \n",
+ "2 Southeast \n",
+ "3 Southeast \n",
+ "4 West "
]
},
- "execution_count": 10,
+ "execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
@@ -242,10 +235,18 @@
"\n",
"I got the data set from FiveThirtyEight. It was used for an article called\n",
"\"Dear Mona, Which state has the worst drivers?\" in October 2014. The person who wrote the article is Mona Chalabi, they are a data editor at the Guardian US, \n",
- "a columnist at New York Margazine, and a lead news writer for FiveThirtyEight.\n",
+ "a columnist at New York Magazine, and a lead news writer for FiveThirtyEight.\n",
"\n",
- "The date is about fatal collisions in each state. There are 7 rows, some of the rows\n",
- "are about \"Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired\" and \"Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted\"\n",
+ "The date is about fatal collisions in each state. There are 8 rows:\n",
+ "\n",
+ "1. State\n",
+ "2. Number of drivers involved in fatal collisions per billion miles\n",
+ "3. Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding\n",
+ "4. Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired\n",
+ "5. Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted\n",
+ "6. Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents\n",
+ "7. Car Insurance Premiums ($)\n",
+ "8. Region\n",
"\n",
"### How did this data set get clean?\n",
"\n",
@@ -253,11 +254,11 @@
"\n",
"## What specific research questions will you investigate?\n",
"\n",
- "1. Is drinking and driving the biggest cause of fatal collisions?\n",
+ "1. What region has the highest drinking and driving cause of fatal collisions?\n",
"\n",
- "2. What state are you most likely to get into a fatal collision for their first accident?\n",
+ "2. What region has the highest car insurance premiums?\n",
"\n",
- "3. What state is the most unlucky state for fatal collisions?\n",
+ "3. What region is the most unlucky state for fatal collisions?\n",
"\n",
"4. Is there a connection between the speed and the roads that are causing fatal collisions, that would make the Car Insurance Premiums more expensive?\n",
"\n"
@@ -265,9 +266,305 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 76,
"id": "f7bba5f3-5911-4a76-ad43-f6ce78cd4fb3",
"metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['State', 'number_drivers_fatal_billion_miles',\n",
+ " 'percentage_drivers_fatal_speeding',\n",
+ " 'percentage_drivers_fatal_alcohol_impaired',\n",
+ " 'percentage_drivers_fatal_not_distracted',\n",
+ " 'percentage_drivers_fatal_no_previous_accidents',\n",
+ " 'car_insurance_premiums', 'region'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "infinite-instrument",
+ "metadata": {},
+ "source": [
+ "# Methods and Results"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "id": "basic-canadian",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import seaborn as sns\n",
+ "sns.set_theme"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "recognized-positive",
+ "metadata": {},
+ "source": [
+ "## First Research Question: What region has the highest drinking and driving cause of fatal collisions?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "graduate-palmer",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "endless-variation",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ " \n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, calculate the average percentage of drivers involved in fatal collisions who were alcohol-impaired. Finally, I will make a bar plot to compare the average number of fatal collisions that involved drinking and driving for each of the regions\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "portuguese-japan",
+ "metadata": {},
+ "source": [
+ "### Results "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "id": "negative-highlight",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "region\n",
+ "Southeast 29.687500\n",
+ "West 30.363636\n",
+ "Northwest 31.000000\n",
+ "Northeast 31.444444\n",
+ "Midwest 31.666667\n",
+ "Name: percentage_drivers_fatal_alcohol_impaired, dtype: float64"
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#######################################################################\n",
+ "### 💻 YOUR WORK GOES HERE TO ANSWER THE FIRST RESEARCH QUESTION 💻 \n",
+ "### \n",
+ "### Your data analysis may include a statistic and/or a data visualization\n",
+ "#######################################################################\n",
+ "\n",
+ "region = df.groupby(\"region\").percentage_drivers_fatal_alcohol_impaired.mean().sort_values()\n",
+ "region\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "id": "victorian-burning",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 88,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG1CAYAAAAFuNXgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASNNJREFUeJzt3QmcjXX///GPmbGvQ5aoO5E10YK4lWzRKrQosiZkqyTiTotsKSS7JCKpdBOlkrQgUdkiFEmE7MbOzJz/4/29f+f8Zxga55wx55x5PR+P45xzXcd1vnN9r+s6n+u7ZvJ4PB4DAACIEFHpnQAAAIBgIrgBAAARheAGAABEFIIbAAAQUQhuAABARCG4AQAAEYXgBgAARBSCGwAAEFEIbgAAQESJsQxIgzInJjIwMwAA4SIqKpNlypQpVZ/NkMGNApv9+4+mdzIAAEAq5c+f06KjUxfcUC0FAAAiCsENAACIKAQ3AAAgohDcAACAiEJwAwAAIgrBDQAAiCgENwAAIKIQ3AAAgIhCcAMAACIKwQ0AAIgoBDcAACCiENwAAICIQnADAAAiCsENAACIKAQ3QICmTJlozZo1cc8AgPRHcAME4OTJk/bZZ/MsMTHRPv98nnsPAEhfBDdAAOLjT5vHk+heK8DRewBA+iK4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUghsAABBRCG4AAEBEIbgBAAARheAGAABElJjUfnD27NkXtOFGjRr5kx4AQATQRLKab61BgzusVat26Z0cZDCpDm6eeeaZZO8zZcrknj0ez1nLhOAGADL2hLKad00BzoMPtrCsWbOmd7KQgaQ6uPnyyy99r9evX29PP/20derUyW6//XYrVKiQHThwwBYuXGgjR460QYMGpVV6AQBhOKEswQ1CMrgpVqyY73XXrl1dYPPoo4/6lhUuXNgeeughO3XqlL3yyit2yy23BD+1AAAAadGgePPmzVa+fPkU15UoUcK2b9/uz2YBAADSJ7gpXry4zZ07N8V17733npUuXTrQdAEAAKRttVRSnTt3tscff9z++OMPq127tsXGxtrevXtt/vz5tmnTJnvjjTf8Sw0AAEB6BDf169e30aNHu8drr73mekxFRUXZddddZ5MnT7bKlSsHmi4AAICLF9xInTp13ENd/g4dOmT58uWzLFmy+Ls5AACA9B+hWA2L1cZm6tSpriv4jz/+aEeOHAlOygDAj4HjmjVr4p4BZFx+ldxo3ILnnnvOPvzwQ1clpcH7brvtNhszZoz9+eefNm3aNCtSpEjwUwsA58DAcQACKrlREKPeUv3797clS5b4RinWwH4KfIYPH57qbe3bt8/9v2rVqrk2O+3bt3clQl7PPvuslSlTJtlD1WEA8E8DxwHImPwquVGJTbdu3ezee++1hIQE3/Jy5cq55a+++uoF9bzShWjChAmWM2dOGzFihLVu3dr1vMqePbtt3LjROnbsaA8//LDv/0RHR/uTbAAAkAH4VXKjbt8KZFKikYrj4uJStR01RNbIxyoBqlixopUsWdKNfLx792777bffXImQupZXqFDBChYs6Hvkz5/fn2QDAIAMwK/g5oorrrBvvvkmxXXLly9361Mjb968NnToUN+gf/v373ddydVe56qrrnLtd44dO+ZGPQYAAEizaqlWrVq5BsWnT592g/ipQfHWrVtt2bJlNmnSpLNmEE+Nvn372vvvv++6k48dO9Zy5Mhhv/76q1un3ljffvutG0unZs2a9uSTT1ru3LktEDExAXUUA1I8jvSeYyt9kBehg7xAWAY3999/vytlURDy7rvvuuqj7t27W+bMma1du3ZuAk1/AqamTZvaO++849rhTJ8+3QU3Cmg06/i4ceNcSc6QIUNcldWUKVPcOn9ERWWy2Nicfv1fIKnMmf/XmN4rX76clisXx1Z6IC9CB3mBsAxuDh8+bB06dLDmzZvbypUr7eDBg5YnTx6rVKmSG8zPH6qGkgEDBtjq1atdd3K9btasmZveQVR9pTY3DzzwgP3888/u+/yRmOixuLhjfv1fIKmjR48me3/w4FE7fTpTuqUnIyMvQgd5gbSQJ092i46OSrvg5o477rDevXu755tvvtn8pdKfpUuXWoMGDSwm5n9JUWmMAh01KtZrb2DjVapUKfe8a9cuv4MbiY//X5dRIBBnHkd6z7GVPsiL0EFehJYpUya6sZ8aNLjDWrVqZxmBX/U6p06dOivo8LfXlaqzFOB4qR3PL7/84npO9ezZ03ULT0olNklLegAAwPkHt0xM/N/glnqfEfgV3LRs2dJNmKkqqePHj/v95apmUgNhdQX/4YcfXBsbNUZWV3IFNSrRUeAzatQo195GPbT69Oljd911lwt+AADAucVn0MEt/aqW+uijj2zHjh2uPUxK1HtKpS+pMWzYMNcdXD2g1JZHM4qrUXHRokXdQ0GUBvh74403XA+pu+++25544gl/kg0AADIAv4Kbhg0bBi0BClheeOEF90jJ7bff7h5ILiPWoQIAkGbBTZcuXfz5bwgSJggEACAIwY3axJQvX97N/6TX/6RKlSqp3TSCUIdKcAMAwAUGNy1atHAjCGsOKL1WuxrvbOBe3mV6Xr9+fWo3DQAAcPGDm7ffftvXQ0mvAQAAwjq4qVq1aoqvAQAAwr5BsaxZs8ZNlKkB/bzVU3rWLN4//fSTq8ICAAAIi+BG49Bo4L0z29yIpky46aabgpE2AACAizNCsSa11MjCKrlp27atm8hy1apVNmLECNdrJ5jj4AAAAKR5cLN9+3Y3OnHevHmtQoUKrhoqW7ZsbrqE9u3b0+AYAACEV3CTOXNmF8zIFVdcYVu3bnUTXsoNN9xgf/zxR3BTCQAAkJbBTbly5eyrr75yr6+88ko3kNzq1avd+127dvmzSQAAgPRrUNymTRs3BYNm7x44cKDVrVvXevbsafXr17e5c+e60hsAAICwKbmpV6+ejRs3zjeoX79+/ax48eI2Y8YMK1GihD333HPBTicAAEDajnNTq1Yt95DY2FibNGmSv5sCAABI/+BGM1PPnj3bli9fbocOHbICBQpY9erV7a677rKYGL83CwAAEBC/opAdO3ZYy5YtXZfwyy+/3AU26iH10Ucf2eTJk23KlCmumzgAAEBYBDcDBgxwPaRmzZrlek55rV271rp27WpDhgxxnwEAAAiLBsUambhHjx7JAhvRgH5PPPGEffnll8FKHwAAQNoHN5piITo6OsV1uXLlSnHOKQAAgJANbtTeZtiwYfbXX38lW66GxeoirvUAAABh0+ZGjYcPHDhgt912mxuwr3Dhwu695pg6fvy4m5pBVVeSKVMm18AYAAAgZIMb9ZIqU6aMe52QkOB6T0n58uV9n/FWTVFFBQAAQj64mTp1avBTAgAAEASMtgcAYSwqKpN7hJKYmKiz3p+5LBQkJnrcA5HHr+BGDYlfeuklW7FihR0+fPis9Wpn88svvwQjfQCAc1BQky9fDouODq3AIXPm5AFDvnw5LVeunBZqEhIS7eDBYwQ4Eciv4ObZZ5+1VatW2b333mv58uULfqoAAKkKbhTYjH53if21+5CFivjTJ5K97zduvsVkzmahpFihvNb5oRpuHwYruKEULXRK0fwKbhTY9O/f3+68886gJQQA4B8FNn/8dcBCRWL8yWTv/9xx0KJislokoxQttErR/ApuChYsaNmzZw9KAgAACHeUooVWKZpfwU2HDh1s5MiRrjt4sWLFgpIQAADCHaVoocGv4KZWrVo2ceJEq1evnsXGxp5ViqMGxQsWLAhWGgGEkFBsV5CR2xYACFJw07t3b9u2bZvddNNNdskll/izCQBhKFTbFWTktgUAghTcLF++3J5//nm7//77/fnvAMJUqLYryMhtCwAEKbjJkyePXXrppf78VwARINTaFWTktgUAzuZX2fJDDz1kEyZMsCNHjvjz3wEAAEKr5Gbnzp22bt061+amRIkSlitXrmTrL2Qm8H379tngwYNt0aJFdvLkSatSpYr16tXLSpYs6davX7/eBgwYYGvXrrX8+fNb69atrWXLlv4kGwAAZAB+BTdbtmxJcQbwc70/n86dO1tiYqIrCcqZM6eNGDHCBTDz58+3EydOWJs2baxOnTr24osvusED9azPaXRkZBz00AkMPXQAZCTpOiv4oUOH3Dg5GjendOnSblmnTp3snnvusd9++82WLl1qmTNntn79+llMTIwrzdm6dasLhAhuMg566ASOHjoAMpJ0nRU8b968NnToUN/7/fv32+TJk61IkSJ21VVXuYECq1at6gIbr2rVqtn48eNt7969dEPPIOihExh66ADIaFId3JQrV87ee+89q1ixopUtW9a1qzkXf2YF79u3r73//vuWJUsWGzt2rOXIkcN27drlK9HxKlSokK/dTyDBTShWHURaVUiweEts6KETmGCUfIVi6Vk4CtZ+JD8CR16EjmDuw5gLaRtTuHBh3+vzBTf+aNWqlTVt2tTeeecdt/3p06e7NjcKdpLKmvV/PxxqfOwv3cHGxoZe1UGkVYUgtOTJw3xwoYK8CB3kRWTmRaqDmy5duvhed+3aNVX/Rw2LR48e7YIWTbZ5PqqGEvWMWr16tU2bNs2yZctmp06dSvY5b1Cjkh1/qWg+Lu6YhaujR48me3/w4FE7fTr0GtsGM5rnAhS4uLjjru1NIMiL0MkLIT8CR16ET15o/6a2dCdN29yoF5SCm9q1a6cY3KiNjRoNN2jQwNeuJioqygU6u3fvdm1v9JyU9723FMlf8fGJ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F9h4lSpVyj3v2rXL7+BG4uMDP5hxfjpI2c+hg/wIHeRF6CAvIjMv/KrgUgPfjz/+2B588EE7duyYrV271jUAVsAze/bsC2oAPH36dHvppZesefPmrjt40rY0LVq0cNVUSf3888+u9KZ48eL+JB0AAEQ4vxtrqDGxqowCsWXLFhs4cKDdeuut1qFDBzfKsZfGymnQoIFbrzY3N910kwts1NZG4+AwfxUAAAgouFGJzIVo1KjRP35GPaPU+PiLL75wj6QaN25sgwcPdo2XNbCfghyNcdO6dWtr3779BaUFAABkHKkObp555plUb1QBSWqCG3Ub1+N8VF2lBwAAQFCDmy+//DK1HwUAAAj94Eazf6eWJsAEAAAImwbFp06dsilTptjy5cvda49HI+Wae1bvqU2bNtnq1auDnVYAAIC0CW7UY0lj02hQvf3791vWrFndWDeaLkENhLt06eLPZgEAANJnnJv58+e76RDmzJljDz/8sFWoUME++OADt1zVV4mJDIgEAADCKLhRaU3NmjXda5XeaPwZ79g36qY9b9684KYSAAAgLYMbzdSttjZyxRVX2M6dO32NiDVysN4DAACETXBTuXJlN7CeZgZXcJM9e3Y38aWsXLmS0YMBAEB4BTdqMKxJMlUFpcktmzVrZn379rUmTZrYiBEj3LQJAAAAYdNbqkyZMvbpp5+63lHeWcJVWrNixQqrU6cO0yMAAIDwmzhT8zzp4Z1uIaVpFNRrSnNB9evXj1m8AQBA6FZLpZYG9dNAf0ePHk3LrwEAALg4wQ0AAMDFRnADAAAiCsENEIBMUdH61/vu/94DANITwQ0QgExRMZajUDkX2OhZ7wEA6YsrMRCg3JdXcw8AQGig5AYAAEQUghsAABBR0jS40eB+RYsWtSxZsqTl1wAAAFx4m5sffvjBLkSVKlUsKirKFi5ceEH/DwAA4KIENy1atHAlMakZlVifW79+fUAJAwAASNPg5u233/brCwAAAEIyuKlatWqqN6rSGwAAgLAa52bevHluUsxTp075ghk9Hzt2zFatWmXffvttMNMJAACQdsHNqFGj3CN37twWHx9vmTNntpiYGNu/f79rRHz//ff7s1kAAID06Qo+a9Ysa9SokSu5ad26tdWuXdu+++47mzlzpuXLl89KlSoVeMoAAAAuVnDz999/29133+16RZUrV85WrlzplleoUME6duxoH3zwgT+bBQAASJ/gJkeOHL5u4VdccYVt377dTpw44d4r2NF7AACAsAlurrnmGps9e7Z7feWVV1p0dLQtXbrUvd+8eTMjEgMAgPBqUKyqpzZt2lhcXJyNGzfOGjZsaL169bIbb7zRFi9ebPXq1Qt+SgEAANIquNHUCmo8vHHjRvf+ueeec72kVqxYYbfddpv17t3bn80CAACkT3CzY8cOK1mypJUtW9a9z5o1q7300kvu9cmTJ23dunV2/fXXB546AACAi9Hmpm7duuecO2rNmjWuygoAACCkS25efvllO3jwoG8k4jFjxlhsbOxZn1PQo8H9AAAAQjq4KVGihI0dO9a9VjfwtWvXntUrSr2mFNhcSJsbBUzDhg2zr7/+2o4cOWJlypSxp556yipXruzWqxfWK6+84nphXXrppda1a1e78847U/8XAgCADCXVwY2mVPBOq1CnTh0bPXq0G9MmUN27d7c9e/a4AKdAgQI2depUe+SRR9woyCoh6tChg6vmUoCjAKhnz56WP39+q169esDfDQAAIo9fDYoXLlx43vUqgcmVK9c/bmfr1q22ZMkSmz59ut1www1uWd++fW3RokU2d+5c27dvnyvJefLJJ906NWL+5ZdfbOLEiQQ3AAAgeMGNZgKfMmXKOWcF37Rpk61evfoft6M2OxMmTHCDAnqpyksPjaHz448/njVmTrVq1WzAgAHuu7yjJAMAAAQU3AwZMsSmTZtmpUuXdjOBqyu4qop+/fVXO336tHXp0iVV28mTJ4/dcsstyZZ9/vnnrkSnT58+rmqqSJEiydYXKlTIjh8/bgcOHHDf6a+YmPN3FIuO9qsjGdJgH5IXFjL7kbwIDs6N0EFehI5g7kO/gpv58+e7djAalVgjFKuH1IgRI9yEmg8//LAlJib6lRgNAqjGyPXr17datWq5+arObLTsfa8SI39FRWWy2Nicfv9/pE6ePNnTOwlIgvwIHeRF6CAvIjMv/ApuVFpTs2ZN91qlN++//757XbhwYWvfvr299dZbqS698VqwYIH16NHDDf736quvumUqEToziPG+z57d/52QmOixuLhj/xhBctAHJi7uuCUk+BfoJkVehE5+kBfBwbkROsiL8MkL7d/Ulu74Fdyou7c3yNCs4Dt37vQ1Ii5evLh7fyFUxaV2NJq6QePpeEtn1PV79+7dyT6r95qVPNCxdOLjAz+YcX46SNnPoYP8CB3kReggLyIzL/yq4NIYNOqyrbYvCm5UiqKSF1m5cmWqekp5qaeUpm5o3ry56w6etBpK36NGy0l9//33rnRHc1kBAACcya8IoXPnzrZq1SpXBRUTE2PNmjVzXbibNGni2t40aNAgVdvZsmWLDRw40G699VY3ns3evXvdmDd6HD582Fq0aOGmc1A1lQbxmzRpkn322WfWrl07f5INAAAygFRXS2lCTLWBEU2Y+emnn7reUaIRhVVaowbBGuBPQU9qqGeUeld98cUX7pFU48aNbfDgwW6aBw3gp67nl112mXvNGDcAACDg4EZBy6hRo+y6665zzxqtuEaNGm6dxpvp2LGjXSj9n3/6f2q47G28DAAAELRqKVUTeRv3auoFdfsGAAAI25IbjSKs6if1ZtLowGp3c+YYNF4qyfE2MAYAAAjJ4EY9mSZPnuxm8Z49e7aVL18+oBGCAQAA0jW40QB9GpFYli1b5iazVMPif7Jjxw43ZYJ6VQEAAIRkV3DNCp6awCYhIcHq1q1rGzdu9OdrAAAALliaj4TnnTEcAADgYmCYXwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUghsAABBRCG4AAEBEIbgBAAARJWjBTXx8vJuaIdnGo6KsS5cuboRiAACAkA1uFMiMGjXK5s6d65uOoUaNGla9enVr1aqVHTp0yDeBpoKbggULBjfVAAAAwQxuXn/9dRs7dqzFxcW59/3797d8+fJZ79697c8//7ShQ4f6s1kAAID0CW4++eQT6969uzVv3tw2b95sv/32mz322GPWsmVLN6Gm5p4CAAAIm+Bm9+7dVqlSJff666+/dm1ratas6d4XKVLEDh8+HNxUAgAApGVwowbC27dvd69VSlOuXDnLnz+/e79y5UoX4AAAAIRNcHPXXXfZoEGD7JFHHrGffvrJ7r33Xrd8wIABNnLkSLv77ruDnU4AAIBUiTE/PPHEE5YjRw774Ycf7KmnnrJmzZq55T///LO1bdvWOnXq5M9mAQAA0ie4UU+pBg0aWIcOHZItnzFjRuApAgAAuNjVUuPHj/e1uQEAAAj74Oaqq66yLVu2BD81AAAA6VEtVbt2bRs2bJgtWrTIypQp49rfJKWRiTt37hxo2gAAAC5OcKOpF2TJkiXucSaCGwAAEFbBzYYNG4KfEgAAgFCYFVyjEWsKhlOnTllCQkIw0gQAAHDxgxvNBH7//fdb1apV3aB9ml9KY94MHjzY/9QAAACkR3CzdOlSNzpxtmzZrEePHubxeNzysmXL2ttvv21vvfVWoOkCAAC4eMHNa6+9ZnXr1rWpU6daq1atfMFNx44drV27dvbBBx8EO50AAABpF9ysX7/eN5+UekYlVaNGDfvrr7/82SwAAED6BDe5c+e2PXv2pLhu586dbj0AAEDYBDeqkho+fLibKNNLJTi7du2ycePGWa1atYKZRgAAgLQd50a9olavXm0PPPCAXXLJJW5Z9+7dXXBz6aWXutf+0rxVixcvdu15vJ599tmz2vEUK1bMFi5c6Pf3AACAyORXcJM3b14XbMyePdu+//57O3jwoKuKatGihTVp0sSyZ8/uV2Leeecd11i5cuXKyZZv3LjRNVZ++OGHfcuio6P9+g4AABDZ/B6hWN2+VXKjR6D+/vtve/75593YOcWLF0+2Tj2xNm3aZO3bt7eCBQsG/F0AACCy+dXmplGjRm7gvjfffNN2794dcCLWrVtnmTNntjlz5lilSpWSrfvzzz/t2LFjVqJEiYC/BwAARD6/J878+OOPbeTIkW52cI1SfM8991j9+vXPmiE8NerUqeMeKfn111/ds9rgfPvttxYVFWU1a9a0J598MqBeWTEx54/roqMDnpkiwwvWPiQvLGT2I3kRHJwboYO8CB3B3Id+BTf16tVzD5WoLFiwwObNm+ca/b744otuecOGDe3mm28OSgIV3CigKVSokOuJpZKcIUOGuOkepkyZ4tZdqKioTBYbmzMo6cO55cnjX9srpA3yI3SQF6GDvIjMvPAruPFSKY0CGT3UqFglOu+++64r1dFAf8Hw2GOPWbNmzSw2Nta9L126tGt7o7Y+6op+ZjVWaiQmeiwu7tg/RpAc9IGJiztuCQmJAW+HvAid/CAvgoNzI3SQF+GTF9q/qS3dCSi4kbVr19onn3xin332mRvAr1y5cq6KKlhUMuMNbLxKlSrlntX13J/gRuLjAz+YcX46SNnPoYP8CB3kReggLyIzL/wKbtR7SQGNqqNUTaQqIzUwVlDjDTyCpWfPnq7R8uTJk33LvIMHXnXVVUH9LgAAEP78Cm7uuusuVyXVoEEDe+GFF6xatWpnzTEVLPqOTp06uSovVX9t2bLF+vXr59JQsmTJNPlOAACQwYKbV1991TUczpYtm6U1TfWggf0mTJhgb7zxhushpVKiJ554Is2/GwAARHBws2PHDteQV+PRXH/99bZ///7zfr5o0aJ+JWjw4MFnLbv99tvdAwAAIGjBjUpQ3nvvPatYsaIbk+afqqGC1VsKAAAgTYKbgQMH2uWXX+5eDxo06IK+BAAAIOSCm8aNG/teq8u3GvrSoBcAAIQav8Y6Hj9+vG3fvj34qQEAAEiP4Ebjy6hLNgAAQER0Ba9du7abMHPRokVWpkyZsybLVGPjzp07ByuNAAAAaT8ruCxZssQ9zkRwAwAAwiq42bBhQ/BTAgAAkF5tbgAAAMK+5KZ3794XtGHGwgEAACEd3CxbtizZe83UHR8f76ZZ0LQMBw8etG3btlmWLFmsbNmyaZFWAACA4AU3Cxcu9L2eO3eumzxz5MiRbjoGr02bNrkZvJkHCgAAhFWbm+HDh1v37t2TBTbe8W80W/fEiRODlT4AAIC0D24OHDhgefLkSXFdTEyMHTt2zJ/NAgAApE9wc+2119rYsWPt0KFDZ7XDUVXVjTfeGHjKAAAALtY4N7169bIWLVq4kYqvu+46y5cvn+3bt89WrlxpefPmdYEPAABA2JTcqDfUxx9/bE2bNrUjR47Y2rVr7cSJE9a2bVubM2eOXXbZZcFPKQAAQFqV3EjhwoVdCc75eDwe69Onj3Xt2tV1GQcAAAjrEYoTExNt9uzZrgEyAABAREy/oNIbAACAi4W5pQAAQEQhuAEAABGF4AYAAEQUghsAABBRCG4AAEBESfPgJlOmTGn9FQAAAD50BQcAABHF7xGKZfPmzbZkyRI3Yabmmtq2bZubmiFXrlxufXR0tG3YsCFYaQUAAEib4EYjDz/33HP24YcfupIZVT3dfvvtNmbMGPvzzz9t2rRpVqRIEX82DQAAcPGrpRTEzJ071/r37+9KbrxVT08//bQLfIYPHx5YqgAAAC5mcKMSm27dutm9995r+fLl8y0vV66cW66ABwAAIGyCm71797pA5lyzhcfFxQWaLgAAgIsX3FxxxRX2zTffpLhu+fLlbj0AAEDYNChu1aqVa1B8+vRpq127tmtQvHXrVlu2bJlNmjTJnnnmmeCnFAAAIK2Cm/vvv9/2799vY8eOtXfffdc1KO7evbtlzpzZ2rVrZw899JD5a/z48bZ48WKbOnWqb9n69ettwIABtnbtWsufP7+1bt3aWrZs6fd3AACAyOX3ODcdOnSw5s2b24oVK+zQoUOWJ08eq1SpUrIGxhfqnXfesddee80qV67sW3bgwAFr06aN1alTx1588UVbtWqVe86ZM6dr0AwAABC0Qfw0WF/NmjUtUH///bc9//zzrlqrePHiyda9//77rkSoX79+FhMTYyVLlnRVYBMmTCC4AQAAwQluVIpyrjmjoqKiLEeOHK5RsUYtrlKlyj9ub926dS6AmTNnjo0ePdr++usv37off/zRqlat6gIbr2rVqrnqK/XauuSSS/z5EwAAQITyq7fU3XffbXv27LFjx465wOOOO+6wG2+80U6ePGk7duxwpS87d+50DY+XLl2aqmBp5MiRdvnll5+1bteuXWeNdlyoUCH3rO8AAAAIuOTm4MGDVr58eXvzzTdd2xevEydOuLY4BQsWtBEjRlifPn3caMbVq1f352t828ySJUuyZVmzZnXPCqb8FRNz/rguOjrN5xSNeMHah+SFhcx+JC+Cg3MjdJAXoSOY+9Cv4Oazzz6zQYMGJQtsJFu2bK4nk7qCP/vss65E5/HHHw8ogdrmqVOnki3zBjWq/vJHVFQmi41NnnYEX5482dM7CUiC/Agd5EXoIC8iMy/8blB89OjRFJcfPnzY4uPj/7fxmJhzts1JLVVJadbxpLzvNRqyPxITPRYXd+wfI0gO+sDExR23hITEgLdDXoROfpAXwcG5ETrIi/DJC+3f1Jbu+BXc/Pvf/7Zhw4bZVVddlWwahg0bNriu3DVq1HDvv/jiC9e7KRBqkDxjxgxLSEiw6Ohot+z777+3K6+80goUKOD3duPjAz+YcX46SNnPoYP8CB3kReggLyIzL/yq4FJbGlUXNWnSxOrXr28PPvig3Xrrrda4cWPLnj27/ec//7H58+fb9OnT7ZFHHgkogerufeTIEbfNTZs22X//+1+bPHmya9sDAAAQlJIbNRj+6KOPXNdtjU2j0YpVQtO5c2fXk0olLCVKlLD33nvPKlasaIFQ6czEiRPdCMUKnvTdPXv2dK8BAACC1uZGPZjuu+8+9ziTpmNQlZU/Bg8efNYyBUgKlAAAANIsuJk3b56bAVw9mRTMiJ419o2mSPj222/93TQAAMDFDW5GjRrlHrlz53Y9ozS6sHpGqXpKIxRrYk0AAID04FeD4lmzZlmjRo1cyY3Gtaldu7Z99913NnPmTDdxZqlSpYKfUgAAgLQKbjTRpRoOawwbdQVfuXKlW16hQgXr2LGjffDBB/5sFgAAIH2CG40M7B2cTxNkbt++3U2TIAp29B4AACBsgptrrrnGZs+e7V5rMD11/fZOkLl58+az5oICAAAI6QbFqnpq06aNxcXF2bhx46xhw4bWq1cvNzP44sWLrV69esFPKQAAQFoFN5oSQY2HN27c6N4/99xzrpfUihUr7LbbbrPevXv7s1kAAID0CW527NjhRiQuW7ase581a1Z76aWXfDN2r1u3zq6//vrAUwcAAHAx2tzUrVvX1q9fn+K6NWvWuCorAACAkC65efnll+3gwYO+kYjHjBljsbGxZ31OQY8G9wMAAAjp4EYTYY4dO9a9VjfwtWvXntUrSr2mFNjQ5gYAAIR8cKMpFbzTKtSpU8eV3Hjb3AAAAIR1g+KFCxcGPyUAAADpFdyozY2mWPjqq6/s+PHjlpiYmGy9qq2mTJkSjPQBAACkfXAzdOhQmzhxol122WVWpEgR31QMSYMfAACAsAluNPWCuntrVGIAAICwH+fmyJEjVqtWreCnBgAAID2CmxtuuMFNtQAAABAR1VLt2rWzp59+2uLj461SpUqWPXv2FOefAgAACIvgxju9wujRo91z0gbFakys9+eangEAACDkgpu33347+CkBAABIr+CmatWqwfhuAACA0AhuZP/+/fbmm2/ad999Z3v27HHj3ixYsMBNyVCvXr3gphIAACAte0tt27bNGjZsaO+//74VLlzY9u3bZwkJCbZlyxbr1q2bff311/5sFgAAIH1Kbl5++WUrUKCATZ061XLkyGEVKlTwjVx88uRJGzduHOPgAACA8Cm5Wbp0qXXq1Mny5Mlz1tQLTZs2td9++y1Y6QMAAEj74EZiYlIu9Dl16tRZAQ8AAEBIBzeVK1e28ePH27Fjx3zLFNBodvB3333Xrr/++mCmEQAAIG3b3Dz11FP20EMPWf369e3GG290gY16Tm3evNm2bt1q06dP92ezAAAA6VNyU7p0aZs5c6YLbJYtW2bR0dGuS/i//vUvmzFjhpUrVy7wlAEAAFzMcW6uvPJKGzJkiAts5Pjx426uqdy5c/u7SQAAgPQpuTl9+rQ9//zz9sADD/iWrVy50qpXr+66iavtDQAAQNgENyNHjrQ5c+bYnXfe6VtWvnx569GjhxvYT6MVAwAAhE211Ny5c61Xr1724IMP+pbly5fPWrdu7bqIa2LN9u3bBzOdAAAAaRfcHDhwwC6//PIU15UoUcJ27dplwfT3339bzZo1z1o+aNAga9KkSVC/CwAAZMDgRgHM559/bjVq1Dhr3cKFC+2KK66wYNqwYYNlzZrVTcyZdIBAGi8DAICgBDctW7a0Z555xg4ePOhmANc8U5ol/KuvvrJPP/3UlagE06+//mrFixe3QoUKBXW7AAAg8vgV3DRq1MiOHj1qY8aMsfnz5/uWx8bGWt++fd36YNq4caOVLFkyqNsEAACRya/gRiMRN2/e3Jo1a2ZbtmxxJTiaRFPVVVFRfk9Xdd6SGwVO+k59n6q9HnvssRTb4aRWTMz50xkdHfy/I6MJ1j4kLyxk9iN5ERycG6GDvAgdwdyHfgU3Cmp69+7tSmgU0KQlDQz4+++/21VXXeWqwnLlymWffPKJ64311ltvubF1LlRUVCaLjc2ZJunF/5cnT/b0TgKSID9CB3kROsiLyMwLv4KbzJkzu5KUi0Fdy71TPGTLls0tq1Chgv32229uPit/gpvERI/Fxf3/ST/PFUFy0AcmLu64JSQEPqAjeRE6+UFeBAfnRuggL8InL7R/U1u641dw8/jjj7upFw4fPmxly5a1HDlynPWZokWLWrDkzHl2KUupUqVs8eLFfm8zPp5RlNOaDlL2c+ggP0IHeRE6yIvIzAu/gpsXXnjBEhIS7Omnnz7nZ9avX2/BoBKapk2b2tixY91EnV5r1651VVUAAAABBzf9+/e3i0W9pNSup1+/fvbiiy+66jBN8bBq1Sr78MMPL1o6AABABAc3jRs3totFva/GjRtnQ4cOtSeeeMLi4uLcPFZqTFy6dOmLlg4AABDBwY2cOnXKZs6cad99953t2bPHBg4caMuXL7err77aKlasGNREXnLJJUEfGBAAAEQmvzqVazTie++91wYMGGBbt261NWvW2IkTJ+zrr7+2Fi1a2MqVK4OfUgAAgLQKbtRTSiMUz5s3z2bNmmUej8ctf/311+2aa65xzwAAAGET3GgOKXUH10jBSSey1OSWbdu2tXXr1gUzjQAAAGkb3Jw8edLy5cuX4joNtnf69Gl/NgsAAJA+wY2qnqZPn57iurlz57oRhAEAANKD3yMUt27d2u655x675ZZbXNXUxx9/bCNHjnSjBk+cODH4KQUAAEirkpvKlSu7cWY07YICGTUonjx5susSPn78eKtWrZo/mwUAAEi/cW6qVKlinTp1ciU1x48fd4FO3bp13XIAAICwCm4OHTpkHTp0sNWrV7sGxGpcfPDgQZsyZYrVrFnTVU9lyZIl+KkFAABIi2opjUa8ZcsWF8T8/PPPrvRGA/mNGDHCzfk0fPhwfzYLAACQPsGNRiLu0aOH1atXzzfOjeaAql+/vj355JOuxxQAAEDYBDdqQKz5nlJy6aWX2rFjxwJNFwAAwMULbjQr+NixY90UDEnFx8fbtGnTLuqs4QAAAAE3KM6ePbv98ccfrneUHoULF7YDBw7YN998Y7t27bK8efNa79693WdVbaU2OgAAACEb3MyZM8dy5crlXi9dujTZuiJFitiKFSt875POPQUAABCSwc3ChQuDnxIAAID0anMDAAAQqghuAABARCG4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUghsAABBRCG4AAEBEIbgBAAARheAGAABEFIIbAAAQUQhuAABARCG4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQJi+AmMTHRXn/9dbv55pvt2muvtUcffdS2bduW3skCAAAhKCyCmzFjxtj06dPtpZdeshkzZrhgp127dnbq1Kn0ThoAAAgxIR/cKICZNGmSdevWzWrVqmVly5a14cOH265du2z+/PnpnTwAABBiQj642bBhgx09etSqV6/uW5YnTx4rX768/fDDD+maNgAAEHoyeTwej4Uwlc507drVVq9ebdmyZfMtf/zxx+3EiRM2fvz4C96m/uTExPP/2ZkymUVFRdmhIycsISHRr7RnVNHRUZY3VzZXfRiMo4u8CJ38IC8Cw7kROsiL8MuLqKhMlkk7OhViLMQdP37cPWfJkiXZ8qxZs9qhQ4f82qZ2TnR06naQdjj8oxM9mMiL0MkP8iIwnBuhg7yIzLwI+Wopb2nNmY2HT548admzZ0+nVAEAgFAV8sHNpZde6p53796dbLneFy5cOJ1SBQAAQlXIBzfqHZUrVy5btmyZb1lcXJz98ssvVqVKlXRNGwAACD0h3+ZGbW0efvhhe/XVVy1//vxWrFgxe+WVV6xIkSJWv3799E4eAAAIMSEf3IjGuImPj7dnn33W9ZBSic2bb75pmTNnTu+kAQCAEBPyXcEBAAAiqs0NAADAhSC4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUgpsAzJkzxx544AG79tpr7brrrrN7773XZsyYEdTvOHDggH3wwQe+9y1atLBnnnnG0pOGRpo1a5bt27fPIkGXLl3s/vvvP2u58rZMmTK2fPnys/Jd04IE+vefPn3aJk+ebJGkTp067nHkyJGz1um41fEbiK+++so2bdrkXmtKFuXP9u3bLRSEy3mh/NF+e+utt1Jc/9xzz7n1I0eOtP/+97/u9flovT6XHn766Sf78ccfLRxkxHNjx44d9sknn6TLdxPc+GnmzJn2/PPPux9AXdA+/PBDa9SokfXv399GjRoVtO8ZMmSI+zENJT/88IM7GY8fP26RoHr16rZ+/Xo3+rXXwYMH7eeff3YTty5atCjZ53UxVXBToECBgL73448/tkGDBlmk+euvv9xxmxbb7dixY8gGD+F0Xmh0988///ys5RoJfv78+ZYpUyb3/o477rDFixdbqGrWrJn9+eefFi4y2rnRq1evs66fFwvBjZ+mT5/uSmruu+8+u/LKK61EiRIu8m7durW9/fbbQfueUBxAOhTTFIhq1aq5UhQFM17fffedC16UxykFN//+978D/t5I249el19+ub333ntuHwZTqO+vUE/fmQH9qlWrbNeuXcmWf//995YjRw4X1Eu2bNmsYMGC6ZTKyJNRz430QHDjp6ioKFu5cqUdOnQo2fL27du7g1dUEvDaa69Z3bp17ZprrrF77rkn2d1SSkW+SZfpLlClQqoWSfq5o0ePWu/eva1y5cp2ww03uM8dO3bMt37z5s326KOPuqqym266yZ566inbs2ePb73SrHm6br75Zrv66qvdhU7vk95xau6uevXqWYUKFVxR6ujRo90JpOLOli1bus/o70qv4uhgKlmypBUuXNhWrFjhW6aARvtOjw0bNtjevXvd8v3797v9q+WnTp1yk7hqP2pfqxQv6V1uQkKCW3/LLbe4/XjbbbfZu+++69ZpvykPRXmbdNb7cNewYUN3TP3nP/9JsQjeWzL24osvun1TsWJFe/DBB5PtA1WJaMLcJ5980q6//np3V6rjTXT8ab3XN998Y3fddZfbx3feead9/fXXbvngwYPt7rvvTnbclytXzvr16+dbtnDhQpd3J0+edMf3G2+84b6nUqVK7nw9s9Q0Us4L7fOiRYvaZ599lmz5vHnz7Pbbb/eV3Jx5jVIw9Nhjj7l9VrNmTZs7d26yfakSTZ0jXirNVt4kzYPy5cv7qpJUldKkSROXnltvvdVdL3VeJc1brVd+6JjStc57zfWmS+dRelfVh9u5Iak53hcsWOCq7NX0Qr9hyoukN3t//PGHPfLII+53SMeEXm/cuNGt082+frv0G6Zz5aLT3FK4cJ9++qmnbNmynooVK3oeffRRz/jx4z2rV6/2JCYm+j7z2GOPeW655RbPV1995fn99989r7/+uqdMmTKeL774wq3/8MMPPaVLl0623aTL4uLiPI8//rinadOmnt27d7tlDz/8sFs/bNgwz9atWz0LFizwXHPNNZ7XXnvNrd+1a5enatWqnpdeesmzadMmz88//+xp3769p3bt2p6jR4+6z3Ts2NHTuHFjz6pVqzzbtm3zfPTRR56rr77a89Zbb7n1X375padKlSqexYsXe/766y/PJ5984tbPnj3bc/LkSc/nn3/u0qC/9/jx455I0LNnT0+HDh1872+66SbPnDlzPPHx8Z7KlSt7Zs2a5ZbPnz/f5fmJEyc83bt399xzzz2e77//3rNlyxbPpEmT3H5Sfsvbb7/tqVOnjuenn37ybN++3TN16lS333744Qe33yZPnuzeK2+1XyOBjjMd5/p7r7vuOs+zzz7rW9erVy93/Gqf6vi76667PMuWLfP89ttvnr59+7p9p2NKtA3tm/79+3v+/PNPz+bNm906LdPxd+TIEbff9b5+/frutc6xTp06eSpVqpRsvffc0Tmr8++OO+7wpUnf26VLF/d66NChLv3KP51bM2fOdH/DtGnTIuq88ObRkCFD3LXFS3+D/r5169b5PpP0enT69GnPnXfe6f7P2rVrPStWrHDHv9brc/qbdW5ov8i+ffvcNVLr9+7d65Z9/PHHnmrVqnkSEhI833zzjfv8u+++6/b3okWLXF5269bN9/8rVKjg9r+Opx9//NGdT3369HHrla/ats4jXStDXSidG6k53vXbofzT74K+55dffvE88sgjLv+81yultXfv3u76p7S2a9fOU69ePbfuwIED7ljRb5jy8mILi1nBQ5HuwosUKeKqoJYsWeIiZClevLgNHDjQ8uXLZ19++aWNGzfOatWq5dZ17drV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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.barplot(data=df, x=\"region\", y=\"percentage_drivers_fatal_alcohol_impaired\", errorbar=\"sd\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "collectible-puppy",
+ "metadata": {},
+ "source": [
+ "## Second Research Question: What region has the highest car insurance premiums?\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "demographic-future",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "incorporate-roller",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ "\n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, compare the average cost of car insurance and see which region is the highest.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "juvenile-creation",
+ "metadata": {},
+ "source": [
+ "### Results "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "id": "pursuant-surrey",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "region\n",
+ "Midwest 756.630833\n",
+ "West 855.624545\n",
+ "Southeast 905.472500\n",
+ "Northeast 975.038889\n",
+ "Northwest 1160.163333\n",
+ "Name: car_insurance_premiums, dtype: float64"
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#######################################################################\n",
+ "### 💻 YOUR WORK GOES HERE TO ANSWER THE SECOND RESEARCH QUESTION 💻 \n",
+ "###\n",
+ "### Your data analysis may include a statistic and/or a data visualization\n",
+ "#######################################################################\n",
+ "\n",
+ "df.groupby(\"region\").car_insurance_premiums.mean().sort_values()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 87,
+ "id": "located-night",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 87,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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v//+uz322GP2zTff2Ouvv24zZsywu+++281XWyIN7qj1Wb58ueu91rt3b1da1Lp165N6DQAAgFxXqykEDRs2zGrUqGErV6603377zW666SZXinPzzTfb/fffb6Ggkp0pU6bY0KFDrV27dnb66adb//793X2/nj17uuq1AQMGuMbXKimaOnWqGx7gZF8DAAAgV+EoLS3NjSckH3zwgWv8XLduXfdY1VfeMYX+F8OHDz9mWs2aNe3ll18+7nMSEhLswQcfdLfj+aPXAAAgHKgntG7hJDFCuvKro5RuoRBUitG4QRqBWu12Fi9ebJdccokLRApNugxI9nGFAADAiSkUlShRKOzGsMoXIV351UkhOflQSAJSUOFIVVm6RpmCkNr96GKvcsUVV7hRpydOnJjrFQNiycyZU2zJkkV2xRVXWefO3fJ6dQDkUThSMBr/0irbsec/Y/WFg/S0I1keD5641BLz/f/wOeGgQpnidt8tTdw2zLNw1KRJE3vzzTft888/d5f8qFChgpveuXNnd2kOfzd6AH9M424tXrzIfL5MF5BuvrlTYKBSALFHwei7HfstXGSmZx0w+YedyRafGN3nqKDHOTrrrLPczUvhCMD/Jj09zQUjyczU+CFphCMAiLRwpO77s2fPtk8++cSNK5RdXFyczZw5MxTrBwAAEP7haPDgwTZv3jyrUqWKlShR4pj5Pl9oWosDAABERDh699133VhGapQNAAAQTYLqLxgfH2916tQJ/doAAABEYjhq27atq1ZT41EAAACL9Wo1XWRWAUnjGlWvXt2NkJ29QbYuLwIAABAT4UgXet2+fbsLRZs2bTpmvsIRAABAzISjhQsX2u233+4u4Kr2RwAAANEiqGSji8u2aNGCYAQAAKJOUOmmVatW9s4774R+bQAAACKxWk3XU1O7o61bt7ou/YULFz6mzRFjIAEAgJgJRwMHDnR/N27c6G7ZEY4AAEBMhSOVGAEAAEQjWlQDAADktuTokUce+cNlnn766WBeOurEx8e5W7hJTIw/5nH2aXktM9PnbgAAhH04Wrt27THTDh06ZMnJyVaiRAmrUaNGKNYt4ikUlShRyBISwit0SL58WUNHiRKFrUiRrA3r81pGRqYlJx8iIAEAwj8crVixIsfp27Ztsx49erhLi+A/4UjBaPxLq2zHngMWTtLTjmR5PHjiUkvMl2ThokKZ4nbfLU3cNiQcAQDCPhwdT+XKle3++++3cePGWZs2bUL50hFNwei7HfstnGSmp2Z5/MPOZItPLJBn6wMAQLgIeX1PkSJFbMeOHaF+WQAAgPAtOdq5c2eOlxTZvXu3jR071pUgAQAAxEw4atmypRvoMTufz2dJSUn2/PPPh2LdAAAAIiMcDRs27JhwpMeqUmvYsKEVLVo0VOsHAIhRM2dOsSVLFtkVV1xlnTt3y+vVQQwJKhy1b98+9GsCAMB/paam2uLFi8zny3QB6eabO1mBAnQaQZiFI1WVdejQwcqWLfuH1WZcWw0AkBvp6WkuGElmZqZ7TDhCWIajZs2aEY4AAEBUSwzmYrNceBYAAESr8LuuBQAAQKQ1yD569KjNnj3bPvnkE0tJScmxWm3mzJmhWD8AAIDwD0eDBw+2efPmWZUqVdyFZnMa7wgIN7pOm27hJjEx/pjH2aflNV3fjmvcAYgVQYWjd999111DjUbXiBQKRSVKFHIXAg43+fJlDR0lShS2IkUKWzjJyMi05ORDBCQAMSGocBQfH2916tQJ/doAf2I4UjAa/9IqdyHgcJKediTL48ETl1piviQLFxXKFLf7bmnitiHhCEAsCCoctW3b1lWrNWrUyAUlIFIoGH23Y7+Fk8z01CyPf9iZbPGJjOcCABEVjnr16uUC0hVXXGHVq1e3ggULHtMgW5cYAQAAiIlwNHLkSNu+fbsLRZs2bTpmfk4XpQUAAIjacLRw4UK7/fbbrX///lSrAQCAqBJUssnIyLAWLVoQjAAAQNQJKt20atXK3nnnndCvDQAAQCRWq9WqVcu1O9I11tSlv3DhrGOycOFZAAAQU+Fo4MCB7u/GjRvdLTvCEQAAiKlwpBKjUyk9Pd3Gjx9vCxYssOTkZLvgggvswQcftNq1a7v5W7ZssaFDh9oXX3xhpUqVco3Fb7vttsDzMzMz7fnnn7dXX33VfvvtN6tfv7498cQTdtZZZ53S9wEAAMJfrltUK2xs27bNXYxWDbX/DP/4xz9csBkyZIgLSJUqVbJu3brZnj17bP/+/XbHHXfY2Wefba+99porsVKVn+77TZgwwebMmeOeP3fuXBeW9HytMwAAQEjC0dq1a61Dhw7WoEEDu+aaa+zrr7+2vn372vDhwy3Uli1bZldffbVdcsklds4559jDDz/sQpmq9F555RXLly+fuxhu5cqV7frrr3clR5MnT3bPVQCaNm2a9ezZ05o3b27VqlWz0aNH265du2zp0qUhX1cAABCD4Wj16tXWtWtXS0pKsn79+pnP95/rLSl4vPDCCzZ9+vSQrmTp0qXtvffes59++smVTr388suWP39+9/9t2LDBBbTExP+vIdRlTb777jvbu3evqwI8ePCgNW7cODC/WLFirmpu/fr1IV1PAAAQo+FozJgxdtlll9msWbOsc+fOgXDUvXt3V12lKrBQeuyxx1zpkP7PGjVquJKfsWPHuqo0lQCVK1cuy/JlypRxf3/++Wc3X8qXL3/MMv55AAAAuWqQrQbQ/t5o2S8V0qRJE5s5c6aF0jfffGNFixZ1jbLLli3rwpdKrGbPnm1HjhxxpUheBQr856KdqampdvjwYXc/p2UOHMjd1dkTE0+cLXUVeOROqLYh+yL32BfhJdq3Y/bzqx7/0Tk30kX7Po2kbRhUOFJQ+eWXX3Kcp9IazQ8VvZ7aMs2YMcPq1avnpqn0SIFp3Lhxrmove8NqhSIpVKiQmy9axn/fv0z2C+b+L+Lj46xkyazjOyH0ihULfh8htNgX4SXa90e+fP+pkfArUaKwFSnCORen5rgIKhypektVW+edd55ru+MvQVI11cSJE13D51D57LPPLC0tzQWi7ANRfvDBB3bGGWe4Xmte/scqZdIwAP5pqobzLlO1atWg1ysz02cpKYf+MMFG+wnsz5aSctgyMjJz/Trsi9xjX0Tn/ghXaivqlZx80NLSovui5hwbf/5xoe17MqVLQYUjleQotNx444122mmnuWl9+vRx4Uhte3Q/VPztib766iurWbNmYPq///1vq1ixogtJ6p6vhtoJCQlu3po1a1x3fzXkVilWkSJFXO86fzhKSUmxzZs3W8eOHXO1bunp0XtiChf6kLOdwwP7IrxE+/7I/t70OJrfL8LruAgqHBUvXty1+9GYQwoiGphRIaRTp07Wvn37XFVXZadAVLduXXvooYfsySefdGFJ/696zL300kt25pln2pQpU1yjbTUG37Rpk6uCGzRoUKCtkUKQxj7SAJEVKlSwESNGuNdp3bp1yNYTAABEh6DC0eOPP2433HCDKznS7c8UHx/vBoFUD7lHHnnENaJWdZ4CkEqNROFII2S3a9fOTj/9dOvfv7+776cxjlS9NmDAANeAWyNkT5061fWAAwAAyHU4Wrhwof31r3+1U0UlVSo10u14pUsa++h4VN2my43oBgAAcCJB9XmrU6eOa8MDAAAQbYIqOVIvL1VLLV682I1SrS7zXuq5NmzYsFCtIwAAQHiHo3fffdeNMK0u9p9//vkx87MPDAkAABDV4WjFihWhXxMAAIBIDUfeQbo2btzoepBpTCH1HvOOQg0AABAT4UgXmh01apS7hpr30h0a30jXXNN4QwhvcfEaMFPVnxqiP+6/jwHEGl0KSbdwEynXVtPVEnRDdAkqHGncITXI1uCKGkhRpUa//vqra6Cty4oUK1bsTx//CLkTF59ohcqcb4f2bHF/9RhAbFEoKlGiUFhe8DRSrq2mEZmTkw8RkKJMUN+IGh377rvvtgceeCAwTZfr0IVh1XNt+vTphKMIUPSsRu4GIHbDkYLR+JdW2Y49ByycpKcdyfJ48MSllpgvvJptVChT3O67pYnbjoSj6BJUONq/f7+7pEdOGjZsaC+88EJu1wsAcIooGH23Y7+Fk8z01CyPf9iZbPGJBfJsfRBbgipLbdSokRslOyfvv//+cYMTAABAVJYcXXvtte7Crl27dnX3y5Yt60qTli1b5todqbpNF4f1a9u2bSjXGYgqNI4HEM7iYvAcFVQ46tOnj/u7atUqd8tOPdm8A0ISjoDjo3E8gHAWF4PnqKDe4fLly0O/JkAMo3E8gHBWNMbOUUGFowoVKpzUcpmZmdaqVSubOHGiValSJZj/CgAA4JT6Uwe30GCRO3bsyDJQJAAAQDgLv5G/AAAA8hDhCAAAwINwBAAA4EE4AgAA8CAcAQAAeBCOAAAAPAhHAAAApyoc6dIh9evXt8KFC/+Z/w0AAEDIBH2BFA3sOG/ePPvoo4/sl19+sWHDhtm6deusevXqVrNmTbdMfHy8zZo1K3RrCwAAEI4lR/v27bPrr7/ehg4dat9//71t2rTJjhw5Yv/617+sU6dO9umnn4Z+TQEAAMI1HD377LN28OBBW7Rokc2fP99dJkTGjh1rNWrUcH8BAABiJhy999579sADD9g555zj2hX5FShQwLp06WJffvllKNcRAAAgvMNRamqqlShRIsd5CQkJlpaWltv1AgAAiJxwpKqzOXPm5DjvzTfftAsvvDC36wUAABA5vdVUpXb77bfbddddZ5deeqmrWnvrrbds3LhxtnLlSpsyZUro1xQAACBcS47q1atn06dPt4IFC7ogpAbZM2bMcF36J02aZI0aNQr9mgIAAITzOEca3HHu3LmuC/+BAwesSJEiDPYIAABid4TsyZMn21133WVJSUlWtmxZ++KLL+ySSy6x2bNnh3YNAQAAwj0cTZs2zcaMGWMVK1YMTDv77LPtyiuvtOHDh9urr74aynUEAAAI72o1Vaf16tXLlRz5lS9f3gYMGGCnnXaaa3/UoUOHUK4nAABA+JYc7d6923Xnz0mtWrXsp59+yu16AQAARE44qlChgq1evTrHeevXr7dy5crldr0AAAAip1rtxhtvtBEjRriRsC+//HIrXbq0uxitLiuiLv59+/YN/ZoCAACEazjSAJCqWps1a5ZrX+S9dEjnzp3tjjvuCOU6AgAAhP84Rw899JDde++99umnn7pxjooVK2Y1a9a0kiVLhnYNAQAAIiEcSdGiRa1Zs2ahWxsAAMwsLj5B/5qZz/39z2MgjMORRsX+xz/+4doYHT582DIzM7PM17XWli1bFqp1BADEmLj4RCtU5nw7tGeL+6vHwKkS1Kdt6NChNm/ePGvQoIGdf/75Fh8f9EDbAADkqOhZjdwNiIhwtHTpUuvdu3eWQSABAACiQVBFPurCr8bXp9KCBQvsqquucoNPtmnTxt55553APA06effdd9tFF13kru+mS5tkZGRkef6LL75ol112mVvvW2+91TZv3nxK1x8AAERxOFIA+eCDD+xUeeONN+yxxx6zv/3tb/b222/b1VdfbX369HE95RTUunbtGrisycCBA+2ll16y8ePHB54/f/58e/bZZ+2BBx6w119/3c4880w33IDGZgIAAMh1tZpKcJ588kkXLnS5kIIFCx6zTNu2bS0UfD6f/f3vf7fbbrvNhSO55557bMOGDbZu3TrbsWOH7dy501555RUrXry4nXfeefbrr7+6MNS9e3fLnz+/TZw40Tp27GjXXnute/6wYcPc4JW6QK5KnAAAAHIVjnTRWX9Vl27ZqbdaqMLR9u3bXQC65pprskyfOnWq+6uSourVq7tg5NeoUSP7/fffbcuWLa6U6LvvvrPGjRsH5icmJlq9evXcpU4IRwAAINfhaPny5XaqKBzJoUOHXPWZ2gop8Kj0qGXLlrZr165jruVWpkwZ9/fnn392QUjKly9/zDJbt27N1bolJp64VjIhgV58uRWqbci+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WbNm9s0334R2LQEAAMI5HKlN0SeffBK4r0bZuoaZv5s8V7sHAAAxVa128803u0EYDx06ZL1793YXetW11m644QabPXu2a48EAAAQMyVHHTp0cOMK+UuIBg8e7ILSsGHD3GCMmgcAABCJgr587cGDB23btm3uvkaeVkBSd/7OnTvn+rIcAAAAERWO1DttzJgxVrFixcA03ddI1M8884y9+uqroVxHAACA8G5zpGuZ9erVy+66667AtPLly7sRqE877TR3+Q5VvQEAAMREyZEuHVKjRo0c59WqVct++umn3K4XAABA5IQjXbx19erVOc5bv369u6grAABAzFSr3Xjjje7K9mlpaXb55Ze7i7/u27fP3nvvPZs+fbr17ds39GsKAAAQruHo9ttvd1Vrs2bNcu2L/HRdNfVWu+OOO0K5jgAAAOEdjuShhx6ye++91zZu3GjJyclWrFgxq1mzppUsWTK0awgAABAJ4UiKFi1qTZs2Dd3aAAAAROogkAAAANGIcAQAAOBBOAIAAPAgHAEAAHgQjgAAADwIRwAAAB6EIwAAAA/CEQAAgAfhCAAAwINwBAAA4EE4AgAA8CAcAQAAeBCOAAAAPAhHAAAAHoQjAAAAD8IRAACAB+EIAADAg3AEAADgQTgCAADwIBwBAAB4EI4AAAA8CEcAAAAehCMAAAAPwhEAAIAH4QgAAMCDcAQAAOBBOAIAAPAgHAEAAERaOEpOTrYnnnjCmjVrZhdddJHdcssttmHDhsD81atXW/v27a1WrVp25ZVX2ttvv53l+ampqTZo0CBr3Lix1alTx/r27Wv79u3Lg3cCAADCXUSEoz59+tinn35qo0aNstdee83OP/9869q1q3377be2bds2u/vuu61p06b2+uuvW4cOHax///4uMPkNHDjQVq5caePGjbOZM2e65/Xs2TNP3xMAAAhPiRbmvv/+e1u1apXNmTPH6tat66Y9/vjj9uGHH9qbb75pv/76q1WtWtV69+7t5lWuXNk2b95sU6ZMcSVFu3fvtgULFtjEiROtXr16bhmFLJUwKXCpJAkAACBiSo5KlixpkydPtho1agSmxcXFuVtKSoqrXlMI8mrUqJF9/PHH5vP53F//NL9KlSpZ2bJlbf369afwnQAAgEgQ9uGoWLFidumll1r+/PkD05YsWeJKlFSVtmvXLitXrlyW55QpU8YO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cOBAlul33XWX+/CLSiLGjBljl112mdWoUcOuu+66LL/Wciqy9k7Tr1CVSqlax7vcwYMH7ZFHHrF69epZ3bp13XKHDh0KzN+2bZvdeeedrqrvkksusb59+9ovv/wSmK911nXqmjZtatWrV3cnSj32/uLVtesuv/xyu/DCC11R8Pjx490BqOLa2267zS2j95VXxemhVLlyZStbtqx98skngWkKRNp2um3dutX27t3rpu/bt89tX00/evSouwiytqO2tUoRvb+yMzIy3PxLL73Ubccrr7zSXnrpJTdP2037ULRvtV2jxbXXXus+U4899liOVQj+krlBgwa5bVOzZk27+eabs2wDVenogtO9e/e2iy66yP0q1udN9PnTfL/333/frr76areN27RpY//617/c9OHDh9s111yT5XN//vnn2+DBgwPTVqxY4fZdamqq+3z/85//dP9PrVq13PGavdQ2Wo4LbfMzzjjDFi9enGX6okWL7K9//Wug5Cj7OUph6p577nHbrFmzZvbmm29m2ZYqUdUx4qfSdO0b7z644IILAlVhqgpq3769W59WrVq586WOK+++1XztD32mdK7zn3P966XjKK+bGkTasSEn83lftmyZa3KgpiP6DtO+8P5Y/O6776xr167ue0ifCd3/6quv3DwVFui7S99hOlZOKV1bDXnjnXfe8VWrVs1Xs2ZN35133umbNGmS77PPPvNlZmYGlrnnnnt8l156qe+9997zffvtt76xY8f6qlat6nv33Xfd/Ndee8133nnnZXld77SUlBTfAw884Lvpppt8e/bscdM6duzo5o8aNcr3/fff+5YtW+arUaOGb8yYMW7+rl27fA0aNPANGTLE98033/g+//xz31133eVr0aKF7+DBg26Z7t27+9q1a+fbuHGj78cff/S98cYbvurVq/umT5/u5i9fvtxXv35938qVK307duzwvf32227+ggULfKmpqb4lS5a4ddD7PXz4sC8a9O/f33f33XcHHl9yySW+hQsX+tLT03316tXzzZ8/301funSp2+dHjhzx9enTx3fdddf51qxZ49u+fbtv2rRpbjtpf8sLL7zga9mype/jjz/2/fTTT75Zs2a57bZ+/Xq33WbMmOEea99qu0YDfc70Odf7rVOnjm/AgAGBeQ899JD7/Gqb6vN39dVX+9auXev7+uuvfY8//rjbdvpMiV5D2+app57y/fDDD75t27a5eZqmz9/vv//utrset27d2t3XMXbvvff6atWqlWW+/9jRMavj76qrrgqsk/7fHj16uPvPPfecW3/tPx1b8+bNc+9h9uzZUXVc+PfRs88+684tfnoPen9ffvllYBnv+SgtLc3Xpk0b95wvvvjC98knn7jPv+ZrOb1nHRvaLvLrr7+6c6Tm792710176623fI0aNfJlZGT43n//fbf8Sy+95Lb3hx9+6PZlz549A8+/8MIL3fbX52nDhg3ueHr00UfdfO1XvbaOI50rw104HRsn83nXd4f2n74X9P9s3rzZ17VrV7f//Ocrresjjzzizn9a127duvkuv/xyN2///v3us6LvMO3LUynx1EYxeKkUoFy5cq4KbdWqVS6hS8WKFW3YsGFWokQJW758uU2cONGaN2/u5t1///2uFELT9OvzjxQtWtQVa6t9gLdoW78m9KtBzj77bGvSpIl98cUX7rFKJrReKgny068xVR3pV6KSv5avX79+4JfXmWeeabNnz7Z///vf7rHq8PPnz28VKlRwvy51K1OmjPur6cWLF3fLlSpVyq1fNNCvObX/0a8p/fJRSZu2U0JCgpunX0v6Fax2JSqx0y9otRlasGCBK42QO+64w+1flS5on2s7qopC21fbT7/2VP2qalhtN+1ficZqC3121N5AjXuvuOIKV9Lmp9K1L7/80pU6nHfeeW6afimrWlPb7u9//3tg2Z49ewa2k79xqT5/hQsXDizz6KOPWsOGDd39++67z/3aVemefs1qWR2f2neqytCvZM1XSeBpp51mH3zwgfXq1cuVvKpx/KhRowLHq44tteXQOv3tb3+LuuNCJUR6b7t373Ylp9pOWneV7ORk9erV9vXXX9u7777rto3omNG2Fb1nHSvav2qrpO2t19KxpJIPTVPJhbavSt51HlRpq0pGRK+pz0Hnzp3dvv7tt99cKZK2r7a5bnqOSmS9x40+H/7PSCQIh2PjL3/5yx9+3nXue/zxx127Lj+VTKlWQm2bVPWqY0JNDPSe9D2l775vv/3WMjMz3Xegpulzoc/VqUQ4ymMqatRNHwR9KSogKWTow6OG2aITtJdCiT6QuaEA5qUDQh9q2bx5szuBqYjTS9UGOihEH3YVgau4U8Wi6uGgg0tf3P6iXzUw14Grg0gfft3XSSpa6aSu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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.barplot(data=df, x=\"region\", y=\"car_insurance_premiums\", errorbar=\"sd\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8ab785a8-ac72-4fec-8d4b-7ad7f93de32d",
+ "metadata": {},
+ "source": [
+ "## Third Research Question: What region is the most unlucky state for fatal collisions?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "810dc600-da04-437d-a546-4d6c5bec01c6",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "be64d030-0f40-4c32-ac3e-be494e64b3a7",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ "\n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, compare the average percentage of Drivers Involved In Fatal Collisions Who Were Not Distracted and the average percentage of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 94,
+ "id": "096fe314-2953-4644-86e0-cd717f77eb8f",
+ "metadata": {},
"outputs": [
{
"data": {
@@ -290,210 +587,181 @@
" \n",
"
\n",
"
\n",
- "
State
\n",
- "
Number of drivers involved in fatal collisions per billion miles
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents
\n",
- "
Car Insurance Premiums ($)
\n",
- "
Losses incurred by insurance companies for collisions per insured driver ($)
\n",
+ "
percentage_drivers_fatal_not_distracted
\n",
+ "
percentage_drivers_fatal_no_previous_accidents
\n",
+ "
\n",
+ "
\n",
+ "
region
\n",
+ "
\n",
+ "
\n",
"
\n",
" \n",
" \n",
"
\n",
- "
32
\n",
- "
New York
\n",
- "
12.3
\n",
- "
32
\n",
- "
29
\n",
- "
88
\n",
- "
80
\n",
- "
1234.31
\n",
- "
150.01
\n",
+ "
Midwest
\n",
+ "
88.833333
\n",
+ "
86.666667
\n",
+ "
\n",
+ "
\n",
+ "
Northeast
\n",
+ "
87.777778
\n",
+ "
85.111111
\n",
+ "
\n",
+ "
\n",
+ "
Northwest
\n",
+ "
91.333333
\n",
+ "
93.666667
\n",
+ "
\n",
+ "
\n",
+ "
Southeast
\n",
+ "
83.000000
\n",
+ "
89.312500
\n",
+ "
\n",
+ "
\n",
+ "
West
\n",
+ "
84.000000
\n",
+ "
91.727273
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " State \\\n",
- "32 New York \n",
+ " percentage_drivers_fatal_not_distracted \\\n",
+ "region \n",
+ "Midwest 88.833333 \n",
+ "Northeast 87.777778 \n",
+ "Northwest 91.333333 \n",
+ "Southeast 83.000000 \n",
+ "West 84.000000 \n",
"\n",
- " Number of drivers involved in fatal collisions per billion miles \\\n",
- "32 12.3 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding \\\n",
- "32 32 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired \\\n",
- "32 29 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted \\\n",
- "32 88 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents \\\n",
- "32 80 \n",
- "\n",
- " Car Insurance Premiums ($) \\\n",
- "32 1234.31 \n",
- "\n",
- " Losses incurred by insurance companies for collisions per insured driver ($) \n",
- "32 150.01 "
+ " percentage_drivers_fatal_no_previous_accidents \n",
+ "region \n",
+ "Midwest 86.666667 \n",
+ "Northeast 85.111111 \n",
+ "Northwest 93.666667 \n",
+ "Southeast 89.312500 \n",
+ "West 91.727273 "
]
},
- "execution_count": 40,
+ "execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "\n",
- "Northeast = df[df.State == \"New York\"]\n",
- "Northeast"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "infinite-instrument",
- "metadata": {},
- "source": [
- "# Methods and Results"
+ "region = df.groupby(\"region\")\n",
+ "region[[\"percentage_drivers_fatal_not_distracted\", \"percentage_drivers_fatal_no_previous_accidents\"]].mean().sort_values(\"region\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "basic-canadian",
+ "execution_count": 98,
+ "id": "3777e6d1-08a5-4747-9100-9af86f88e90a",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 98,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error in callback (for post_execute), with arguments args (),kwargs {}:\n"
+ ]
+ },
+ {
+ "ename": "ConversionError",
+ "evalue": "Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1822\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_converter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:57\u001b[0m, in \u001b[0;36mStrCategoryConverter.convert\u001b[0;34m(value, unit, axis)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;66;03m# force an update so it also does type checking\u001b[39;00m\n\u001b[0;32m---> 57\u001b[0m \u001b[43munit\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 58\u001b[0m s \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mvectorize(unit\u001b[38;5;241m.\u001b[39m_mapping\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__getitem__\u001b[39m, otypes\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mfloat\u001b[39m])(values)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:217\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m OrderedDict\u001b[38;5;241m.\u001b[39mfromkeys(data):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[0;32m--> 217\u001b[0m \u001b[43m_api\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_isinstance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mbytes\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[1;32m 219\u001b[0m \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_api/__init__.py:92\u001b[0m, in \u001b[0;36mcheck_isinstance\u001b[0;34m(types, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m names\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{!r}\u001b[39;00m\u001b[38;5;124m must be an instance of \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m, not a \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 94\u001b[0m k,\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(names[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m or \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m names[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(names) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m names[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 97\u001b[0m type_name(\u001b[38;5;28mtype\u001b[39m(v))))\n",
+ "\u001b[0;31mTypeError\u001b[0m: 'value' must be an instance of str or bytes, not a float",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[0;31mConversionError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/pyplot.py:279\u001b[0m, in \u001b[0;36m_draw_all_if_interactive\u001b[0;34m()\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_draw_all_if_interactive\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m matplotlib\u001b[38;5;241m.\u001b[39mis_interactive():\n\u001b[0;32m--> 279\u001b[0m \u001b[43mdraw_all\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_pylab_helpers.py:131\u001b[0m, in \u001b[0;36mGcf.draw_all\u001b[0;34m(cls, force)\u001b[0m\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m manager \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39mget_all_fig_managers():\n\u001b[1;32m 130\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m force \u001b[38;5;129;01mor\u001b[39;00m manager\u001b[38;5;241m.\u001b[39mcanvas\u001b[38;5;241m.\u001b[39mfigure\u001b[38;5;241m.\u001b[39mstale:\n\u001b[0;32m--> 131\u001b[0m \u001b[43mmanager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw_idle\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backend_bases.py:1891\u001b[0m, in \u001b[0;36mFigureCanvasBase.draw_idle\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1889\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_idle_drawing:\n\u001b[1;32m 1890\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_idle_draw_cntx():\n\u001b[0;32m-> 1891\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backends/backend_agg.py:382\u001b[0m, in \u001b[0;36mFigureCanvasAgg.draw\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 379\u001b[0m \u001b[38;5;66;03m# Acquire a lock on the shared font cache.\u001b[39;00m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\u001b[38;5;241m.\u001b[39m_wait_cursor_for_draw_cm() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\n\u001b[1;32m 381\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m nullcontext()):\n\u001b[0;32m--> 382\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 383\u001b[0m \u001b[38;5;66;03m# A GUI class may be need to update a window using this draw, so\u001b[39;00m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;66;03m# don't forget to call the superclass.\u001b[39;00m\n\u001b[1;32m 385\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mdraw()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:94\u001b[0m, in \u001b[0;36m_finalize_rasterization..draw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 94\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[1;32m 96\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/figure.py:3257\u001b[0m, in \u001b[0;36mFigure.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3254\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[1;32m 3256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[0;32m-> 3257\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3258\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3260\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfigure\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3261\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axes/_base.py:3181\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3178\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[1;32m 3179\u001b[0m _draw_rasterized(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m), artists_rasterized, renderer)\n\u001b[0;32m-> 3181\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3182\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3184\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3185\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:1017\u001b[0m, in \u001b[0;36m_CollectionWithSizes.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1014\u001b[0m \u001b[38;5;129m@artist\u001b[39m\u001b[38;5;241m.\u001b[39mallow_rasterization\n\u001b[1;32m 1015\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw\u001b[39m(\u001b[38;5;28mself\u001b[39m, renderer):\n\u001b[1;32m 1016\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_sizes(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sizes, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\u001b[38;5;241m.\u001b[39mdpi)\n\u001b[0;32m-> 1017\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:360\u001b[0m, in \u001b[0;36mCollection.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 356\u001b[0m renderer\u001b[38;5;241m.\u001b[39mopen_group(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_gid())\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupdate_scalarmappable()\n\u001b[0;32m--> 360\u001b[0m transform, offset_trf, offsets, paths \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_prepare_points\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 362\u001b[0m gc \u001b[38;5;241m=\u001b[39m renderer\u001b[38;5;241m.\u001b[39mnew_gc()\n\u001b[1;32m 363\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_gc_clip(gc)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:332\u001b[0m, in \u001b[0;36mCollection._prepare_points\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 330\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(ys)\n\u001b[1;32m 331\u001b[0m paths\u001b[38;5;241m.\u001b[39mappend(mpath\u001b[38;5;241m.\u001b[39mPath(np\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys]), path\u001b[38;5;241m.\u001b[39mcodes))\n\u001b[0;32m--> 332\u001b[0m xs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_xunits\u001b[49m\u001b[43m(\u001b[49m\u001b[43moffsets\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 333\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(offsets[:, \u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 334\u001b[0m offsets \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mma\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys])\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:278\u001b[0m, in \u001b[0;36mArtist.convert_xunits\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ax \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m ax\u001b[38;5;241m.\u001b[39mxaxis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43max\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxaxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1824\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_converter\u001b[38;5;241m.\u001b[39mconvert(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits, \u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m-> 1824\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m munits\u001b[38;5;241m.\u001b[39mConversionError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed to convert value(s) to axis \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1825\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 1826\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
+ "\u001b[0;31mConversionError\u001b[0m: Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)"
+ ]
+ },
+ {
+ "ename": "ConversionError",
+ "evalue": "Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1822\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_converter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:57\u001b[0m, in \u001b[0;36mStrCategoryConverter.convert\u001b[0;34m(value, unit, axis)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;66;03m# force an update so it also does type checking\u001b[39;00m\n\u001b[0;32m---> 57\u001b[0m \u001b[43munit\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 58\u001b[0m s \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mvectorize(unit\u001b[38;5;241m.\u001b[39m_mapping\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__getitem__\u001b[39m, otypes\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mfloat\u001b[39m])(values)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:217\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m OrderedDict\u001b[38;5;241m.\u001b[39mfromkeys(data):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[0;32m--> 217\u001b[0m \u001b[43m_api\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_isinstance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mbytes\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[1;32m 219\u001b[0m \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_api/__init__.py:92\u001b[0m, in \u001b[0;36mcheck_isinstance\u001b[0;34m(types, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m names\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{!r}\u001b[39;00m\u001b[38;5;124m must be an instance of \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m, not a \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 94\u001b[0m k,\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(names[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m or \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m names[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(names) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m names[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 97\u001b[0m type_name(\u001b[38;5;28mtype\u001b[39m(v))))\n",
+ "\u001b[0;31mTypeError\u001b[0m: 'value' must be an instance of str or bytes, not a float",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[0;31mConversionError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/IPython/core/formatters.py:402\u001b[0m, in \u001b[0;36mBaseFormatter.__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 402\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprinter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;66;03m# Finally look for special method names\u001b[39;00m\n\u001b[1;32m 404\u001b[0m method \u001b[38;5;241m=\u001b[39m get_real_method(obj, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprint_method)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/IPython/core/pylabtools.py:170\u001b[0m, in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, base64, **kwargs)\u001b[0m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbackend_bases\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m FigureCanvasBase\n\u001b[1;32m 168\u001b[0m FigureCanvasBase(fig)\n\u001b[0;32m--> 170\u001b[0m \u001b[43mfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprint_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbytes_io\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 171\u001b[0m data \u001b[38;5;241m=\u001b[39m bytes_io\u001b[38;5;241m.\u001b[39mgetvalue()\n\u001b[1;32m 172\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fmt \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msvg\u001b[39m\u001b[38;5;124m'\u001b[39m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backend_bases.py:2155\u001b[0m, in \u001b[0;36mFigureCanvasBase.print_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[0m\n\u001b[1;32m 2152\u001b[0m \u001b[38;5;66;03m# we do this instead of `self.figure.draw_without_rendering`\u001b[39;00m\n\u001b[1;32m 2153\u001b[0m \u001b[38;5;66;03m# so that we can inject the orientation\u001b[39;00m\n\u001b[1;32m 2154\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(renderer, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_draw_disabled\u001b[39m\u001b[38;5;124m\"\u001b[39m, nullcontext)():\n\u001b[0;32m-> 2155\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2156\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches:\n\u001b[1;32m 2157\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtight\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:94\u001b[0m, in \u001b[0;36m_finalize_rasterization..draw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 94\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[1;32m 96\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/figure.py:3257\u001b[0m, in \u001b[0;36mFigure.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3254\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[1;32m 3256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[0;32m-> 3257\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3258\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3260\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfigure\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3261\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axes/_base.py:3181\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3178\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[1;32m 3179\u001b[0m _draw_rasterized(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m), artists_rasterized, renderer)\n\u001b[0;32m-> 3181\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3182\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3184\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3185\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:1017\u001b[0m, in \u001b[0;36m_CollectionWithSizes.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1014\u001b[0m \u001b[38;5;129m@artist\u001b[39m\u001b[38;5;241m.\u001b[39mallow_rasterization\n\u001b[1;32m 1015\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw\u001b[39m(\u001b[38;5;28mself\u001b[39m, renderer):\n\u001b[1;32m 1016\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_sizes(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sizes, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\u001b[38;5;241m.\u001b[39mdpi)\n\u001b[0;32m-> 1017\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:360\u001b[0m, in \u001b[0;36mCollection.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 356\u001b[0m renderer\u001b[38;5;241m.\u001b[39mopen_group(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_gid())\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupdate_scalarmappable()\n\u001b[0;32m--> 360\u001b[0m transform, offset_trf, offsets, paths \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_prepare_points\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 362\u001b[0m gc \u001b[38;5;241m=\u001b[39m renderer\u001b[38;5;241m.\u001b[39mnew_gc()\n\u001b[1;32m 363\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_gc_clip(gc)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:332\u001b[0m, in \u001b[0;36mCollection._prepare_points\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 330\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(ys)\n\u001b[1;32m 331\u001b[0m paths\u001b[38;5;241m.\u001b[39mappend(mpath\u001b[38;5;241m.\u001b[39mPath(np\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys]), path\u001b[38;5;241m.\u001b[39mcodes))\n\u001b[0;32m--> 332\u001b[0m xs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_xunits\u001b[49m\u001b[43m(\u001b[49m\u001b[43moffsets\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 333\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(offsets[:, \u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 334\u001b[0m offsets \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mma\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys])\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:278\u001b[0m, in \u001b[0;36mArtist.convert_xunits\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ax \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m ax\u001b[38;5;241m.\u001b[39mxaxis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43max\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxaxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1824\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_converter\u001b[38;5;241m.\u001b[39mconvert(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits, \u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m-> 1824\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m munits\u001b[38;5;241m.\u001b[39mConversionError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed to convert value(s) to axis \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1825\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 1826\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
+ "\u001b[0;31mConversionError\u001b[0m: Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "#Import any helper files you need here"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "recognized-positive",
- "metadata": {},
- "source": [
- "## First Research Question: Is drinking and driving the biggest cause of fatal collisions?"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "graduate-palmer",
- "metadata": {},
- "source": [
- "### Methods"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "endless-variation",
- "metadata": {},
- "source": [
- "*Explain how you will approach this research question below. Consider the following:* \n",
- " - *Which aspects of the dataset will you use?* \n",
- " - *How will you reorganize/store the data?* \n",
- " - *What data science tools/functions will you use and why?* \n",
- " \n",
- "✏️ *Write your answer below:*\n",
+ "favorite_types = df[df.region.isin([\"percentage_drivers_fatal_not_distracted\", \"percentage_drivers_fatal_no_previous_accidents\"])]\n",
+ "sns.relplot(data=df, x=\"region\", )\n",
"\n"
]
},
- {
- "cell_type": "markdown",
- "id": "portuguese-japan",
- "metadata": {},
- "source": [
- "### Results "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "id": "negative-highlight",
- "metadata": {},
- "outputs": [],
- "source": [
- "#######################################################################\n",
- "### 💻 YOUR WORK GOES HERE TO ANSWER THE FIRST RESEARCH QUESTION 💻 \n",
- "### \n",
- "### Your data analysis may include a statistic and/or a data visualization\n",
- "#######################################################################"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "victorian-burning",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 💻 YOU CAN ADD NEW CELLS WITH THE \"+\" BUTTON "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "collectible-puppy",
- "metadata": {},
- "source": [
- "## Second Research Question: What state is the most unluckiest state for fatel collisions?\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "demographic-future",
- "metadata": {},
- "source": [
- "### Methods"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "incorporate-roller",
- "metadata": {},
- "source": [
- "*Explain how you will approach this research question below. Consider the following:* \n",
- " - *Which aspects of the dataset will you use?* \n",
- " - *How will you reorganize/store the data?* \n",
- " - *What data science tools/functions will you use and why?* \n",
- "\n",
- "✏️ *Write your answer below:*\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "juvenile-creation",
- "metadata": {},
- "source": [
- "### Results "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "pursuant-surrey",
- "metadata": {},
- "outputs": [],
- "source": [
- "#######################################################################\n",
- "### 💻 YOUR WORK GOES HERE TO ANSWER THE SECOND RESEARCH QUESTION 💻 \n",
- "###\n",
- "### Your data analysis may include a statistic and/or a data visualization\n",
- "#######################################################################"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "located-night",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 💻 YOU CAN ADD NEW CELLS WITH THE \"+\" BUTTON "
- ]
- },
{
"cell_type": "markdown",
"id": "infectious-symbol",
diff --git a/argument.ipynb b/argument.ipynb
index ecde3e4..3ee881e 100644
--- a/argument.ipynb
+++ b/argument.ipynb
@@ -47,7 +47,7 @@
},
{
"cell_type": "code",
- "execution_count": 7,
+ "execution_count": 73,
"id": "technical-evans",
"metadata": {},
"outputs": [],
@@ -59,14 +59,14 @@
},
{
"cell_type": "code",
- "execution_count": 9,
+ "execution_count": 74,
"id": "overhead-sigma",
"metadata": {},
"outputs": [],
"source": [
"### 💻 FILL IN YOUR DATASET FILE NAME BELOW 💻 ###\n",
"\n",
- "file_name = \"Bad_Driver - bad-drivers.csv\"\n",
+ "file_name = \"B_D - bad-drivers.csv\"\n",
"dataset_path = \"data/\" + file_name\n",
"\n",
"df = pd.read_csv(dataset_path)"
@@ -74,7 +74,7 @@
},
{
"cell_type": "code",
- "execution_count": 10,
+ "execution_count": 75,
"id": "heated-blade",
"metadata": {},
"outputs": [
@@ -100,13 +100,13 @@
"
\n",
"
\n",
"
State
\n",
- "
Number of drivers involved in fatal collisions per billion miles
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents
\n",
- "
Car Insurance Premiums ($)
\n",
- "
Region
\n",
+ "
number_drivers_fatal_billion_miles
\n",
+ "
percentage_drivers_fatal_speeding
\n",
+ "
percentage_drivers_fatal_alcohol_impaired
\n",
+ "
percentage_drivers_fatal_not_distracted
\n",
+ "
percentage_drivers_fatal_no_previous_accidents
\n",
+ "
car_insurance_premiums
\n",
+ "
region
\n",
"
\n",
" \n",
" \n",
@@ -170,57 +170,50 @@
""
],
"text/plain": [
- " State \\\n",
- "0 Alabama \n",
- "1 Alaska \n",
- "2 Arizona \n",
- "3 Arkansas \n",
- "4 California \n",
+ " State number_drivers_fatal_billion_miles \\\n",
+ "0 Alabama 18.8 \n",
+ "1 Alaska 18.1 \n",
+ "2 Arizona 18.6 \n",
+ "3 Arkansas 22.4 \n",
+ "4 California 12.0 \n",
"\n",
- " Number of drivers involved in fatal collisions per billion miles \\\n",
- "0 18.8 \n",
- "1 18.1 \n",
- "2 18.6 \n",
- "3 22.4 \n",
- "4 12.0 \n",
+ " percentage_drivers_fatal_speeding \\\n",
+ "0 39 \n",
+ "1 41 \n",
+ "2 35 \n",
+ "3 18 \n",
+ "4 35 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding \\\n",
- "0 39 \n",
- "1 41 \n",
- "2 35 \n",
- "3 18 \n",
- "4 35 \n",
+ " percentage_drivers_fatal_alcohol_impaired \\\n",
+ "0 30 \n",
+ "1 25 \n",
+ "2 28 \n",
+ "3 26 \n",
+ "4 28 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired \\\n",
- "0 30 \n",
- "1 25 \n",
- "2 28 \n",
- "3 26 \n",
- "4 28 \n",
+ " percentage_drivers_fatal_not_distracted \\\n",
+ "0 96 \n",
+ "1 90 \n",
+ "2 84 \n",
+ "3 94 \n",
+ "4 91 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted \\\n",
- "0 96 \n",
- "1 90 \n",
- "2 84 \n",
- "3 94 \n",
- "4 91 \n",
+ " percentage_drivers_fatal_no_previous_accidents car_insurance_premiums \\\n",
+ "0 80 784.55 \n",
+ "1 94 1053.48 \n",
+ "2 96 899.47 \n",
+ "3 95 827.34 \n",
+ "4 89 878.41 \n",
"\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents \\\n",
- "0 80 \n",
- "1 94 \n",
- "2 96 \n",
- "3 95 \n",
- "4 89 \n",
- "\n",
- " Car Insurance Premiums ($) Region \n",
- "0 784.55 Southeast \n",
- "1 1053.48 West \n",
- "2 899.47 Southeast \n",
- "3 827.34 Southeast \n",
- "4 878.41 West "
+ " region \n",
+ "0 Southeast \n",
+ "1 West \n",
+ "2 Southeast \n",
+ "3 Southeast \n",
+ "4 West "
]
},
- "execution_count": 10,
+ "execution_count": 75,
"metadata": {},
"output_type": "execute_result"
}
@@ -242,10 +235,18 @@
"\n",
"I got the data set from FiveThirtyEight. It was used for an article called\n",
"\"Dear Mona, Which state has the worst drivers?\" in October 2014. The person who wrote the article is Mona Chalabi, they are a data editor at the Guardian US, \n",
- "a columnist at New York Margazine, and a lead news writer for FiveThirtyEight.\n",
+ "a columnist at New York Magazine, and a lead news writer for FiveThirtyEight.\n",
"\n",
- "The date is about fatal collisions in each state. There are 7 rows, some of the rows\n",
- "are about \"Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired\" and \"Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted\"\n",
+ "The date is about fatal collisions in each state. There are 8 rows:\n",
+ "\n",
+ "1. State\n",
+ "2. Number of drivers involved in fatal collisions per billion miles\n",
+ "3. Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding\n",
+ "4. Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired\n",
+ "5. Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted\n",
+ "6. Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents\n",
+ "7. Car Insurance Premiums ($)\n",
+ "8. Region\n",
"\n",
"### How did this data set get clean?\n",
"\n",
@@ -253,11 +254,11 @@
"\n",
"## What specific research questions will you investigate?\n",
"\n",
- "1. Is drinking and driving the biggest cause of fatal collisions?\n",
+ "1. What region has the highest drinking and driving cause of fatal collisions?\n",
"\n",
- "2. What state are you most likely to get into a fatal collision for their first accident?\n",
+ "2. What region has the highest car insurance premiums?\n",
"\n",
- "3. What state is the most unlucky state for fatal collisions?\n",
+ "3. What region is the most unlucky state for fatal collisions?\n",
"\n",
"4. Is there a connection between the speed and the roads that are causing fatal collisions, that would make the Car Insurance Premiums more expensive?\n",
"\n"
@@ -265,9 +266,305 @@
},
{
"cell_type": "code",
- "execution_count": 40,
+ "execution_count": 76,
"id": "f7bba5f3-5911-4a76-ad43-f6ce78cd4fb3",
"metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "Index(['State', 'number_drivers_fatal_billion_miles',\n",
+ " 'percentage_drivers_fatal_speeding',\n",
+ " 'percentage_drivers_fatal_alcohol_impaired',\n",
+ " 'percentage_drivers_fatal_not_distracted',\n",
+ " 'percentage_drivers_fatal_no_previous_accidents',\n",
+ " 'car_insurance_premiums', 'region'],\n",
+ " dtype='object')"
+ ]
+ },
+ "execution_count": 76,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "df.columns"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "infinite-instrument",
+ "metadata": {},
+ "source": [
+ "# Methods and Results"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 77,
+ "id": "basic-canadian",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 77,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "import seaborn as sns\n",
+ "sns.set_theme"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "recognized-positive",
+ "metadata": {},
+ "source": [
+ "## First Research Question: What region has the highest drinking and driving cause of fatal collisions?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "graduate-palmer",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "endless-variation",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ " \n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, calculate the average percentage of drivers involved in fatal collisions who were alcohol-impaired. Finally, I will make a bar plot to compare the average number of fatal collisions that involved drinking and driving for each of the regions\n",
+ "\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "portuguese-japan",
+ "metadata": {},
+ "source": [
+ "### Results "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 78,
+ "id": "negative-highlight",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "region\n",
+ "Southeast 29.687500\n",
+ "West 30.363636\n",
+ "Northwest 31.000000\n",
+ "Northeast 31.444444\n",
+ "Midwest 31.666667\n",
+ "Name: percentage_drivers_fatal_alcohol_impaired, dtype: float64"
+ ]
+ },
+ "execution_count": 78,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#######################################################################\n",
+ "### 💻 YOUR WORK GOES HERE TO ANSWER THE FIRST RESEARCH QUESTION 💻 \n",
+ "### \n",
+ "### Your data analysis may include a statistic and/or a data visualization\n",
+ "#######################################################################\n",
+ "\n",
+ "region = df.groupby(\"region\").percentage_drivers_fatal_alcohol_impaired.mean().sort_values()\n",
+ "region\n"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 88,
+ "id": "victorian-burning",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 88,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAG1CAYAAAAFuNXgAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAASNNJREFUeJzt3QmcjXX///GPmbGvQ5aoO5E10YK4lWzRKrQosiZkqyTiTotsKSS7JCKpdBOlkrQgUdkiFEmE7MbOzJz/4/29f+f8Zxga55wx55x5PR+P45xzXcd1vnN9r+s6n+u7ZvJ4PB4DAACIEFHpnQAAAIBgIrgBAAARheAGAABEFIIbAAAQUQhuAABARCG4AQAAEYXgBgAARBSCGwAAEFEIbgAAQESJsQxIgzInJjIwMwAA4SIqKpNlypQpVZ/NkMGNApv9+4+mdzIAAEAq5c+f06KjUxfcUC0FAAAiCsENAACIKAQ3AAAgohDcAACAiEJwAwAAIgrBDQAAiCgENwAAIKIQ3AAAgIhCcAMAACIKwQ0AAIgoBDcAACCiENwAAICIQnADAAAiCsENAACIKAQ3QICmTJlozZo1cc8AgPRHcAME4OTJk/bZZ/MsMTHRPv98nnsPAEhfBDdAAOLjT5vHk+heK8DRewBA+iK4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUghsAABBRCG4AAEBEIbgBAAARheAGAABElJjUfnD27NkXtOFGjRr5kx4AQATQRLKab61BgzusVat26Z0cZDCpDm6eeeaZZO8zZcrknj0ez1nLhOAGADL2hLKad00BzoMPtrCsWbOmd7KQgaQ6uPnyyy99r9evX29PP/20derUyW6//XYrVKiQHThwwBYuXGgjR460QYMGpVV6AQBhOKEswQ1CMrgpVqyY73XXrl1dYPPoo4/6lhUuXNgeeughO3XqlL3yyit2yy23BD+1AAAAadGgePPmzVa+fPkU15UoUcK2b9/uz2YBAADSJ7gpXry4zZ07N8V17733npUuXTrQdAEAAKRttVRSnTt3tscff9z++OMPq127tsXGxtrevXtt/vz5tmnTJnvjjTf8Sw0AAEB6BDf169e30aNHu8drr73mekxFRUXZddddZ5MnT7bKlSsHmi4AAICLF9xInTp13ENd/g4dOmT58uWzLFmy+Ls5AACA9B+hWA2L1cZm6tSpriv4jz/+aEeOHAlOygDAj4HjmjVr4p4BZFx+ldxo3ILnnnvOPvzwQ1clpcH7brvtNhszZoz9+eefNm3aNCtSpEjwUwsA58DAcQACKrlREKPeUv3797clS5b4RinWwH4KfIYPH57qbe3bt8/9v2rVqrk2O+3bt3clQl7PPvuslSlTJtlD1WEA8E8DxwHImPwquVGJTbdu3ezee++1hIQE3/Jy5cq55a+++uoF9bzShWjChAmWM2dOGzFihLVu3dr1vMqePbtt3LjROnbsaA8//LDv/0RHR/uTbAAAkAH4VXKjbt8KZFKikYrj4uJStR01RNbIxyoBqlixopUsWdKNfLx792777bffXImQupZXqFDBChYs6Hvkz5/fn2QDAIAMwK/g5oorrrBvvvkmxXXLly9361Mjb968NnToUN+gf/v373ddydVe56qrrnLtd44dO+ZGPQYAAEizaqlWrVq5BsWnT592g/ipQfHWrVtt2bJlNmnSpLNmEE+Nvn372vvvv++6k48dO9Zy5Mhhv/76q1un3ljffvutG0unZs2a9uSTT1ru3LktEDExAXUUA1I8jvSeYyt9kBehg7xAWAY3999/vytlURDy7rvvuuqj7t27W+bMma1du3ZuAk1/AqamTZvaO++849rhTJ8+3QU3Cmg06/i4ceNcSc6QIUNcldWUKVPcOn9ERWWy2Nicfv1fIKnMmf/XmN4rX76clisXx1Z6IC9CB3mBsAxuDh8+bB06dLDmzZvbypUr7eDBg5YnTx6rVKmSG8zPH6qGkgEDBtjq1atdd3K9btasmZveQVR9pTY3DzzwgP3888/u+/yRmOixuLhjfv1fIKmjR48me3/w4FE7fTpTuqUnIyMvQgd5gbSQJ092i46OSrvg5o477rDevXu755tvvtn8pdKfpUuXWoMGDSwm5n9JUWmMAh01KtZrb2DjVapUKfe8a9cuv4MbiY//X5dRIBBnHkd6z7GVPsiL0EFehJYpUya6sZ8aNLjDWrVqZxmBX/U6p06dOivo8LfXlaqzFOB4qR3PL7/84npO9ezZ03ULT0olNklLegAAwPkHt0xM/N/glnqfEfgV3LRs2dJNmKkqqePHj/v95apmUgNhdQX/4YcfXBsbNUZWV3IFNSrRUeAzatQo195GPbT69Oljd911lwt+AADAucVn0MEt/aqW+uijj2zHjh2uPUxK1HtKpS+pMWzYMNcdXD2g1JZHM4qrUXHRokXdQ0GUBvh74403XA+pu+++25544gl/kg0AADIAv4Kbhg0bBi0BClheeOEF90jJ7bff7h5ILiPWoQIAkGbBTZcuXfz5bwgSJggEACAIwY3axJQvX97N/6TX/6RKlSqp3TSCUIdKcAMAwAUGNy1atHAjCGsOKL1WuxrvbOBe3mV6Xr9+fWo3DQAAcPGDm7ffftvXQ0mvAQAAwjq4qVq1aoqvAQAAwr5BsaxZs8ZNlKkB/bzVU3rWLN4//fSTq8ICAAAIi+BG49Bo4L0z29yIpky46aabgpE2AACAizNCsSa11MjCKrlp27atm8hy1apVNmLECNdrJ5jj4AAAAKR5cLN9+3Y3OnHevHmtQoUKrhoqW7ZsbrqE9u3b0+AYAACEV3CTOXNmF8zIFVdcYVu3bnUTXsoNN9xgf/zxR3BTCQAAkJbBTbly5eyrr75yr6+88ko3kNzq1avd+127dvmzSQAAgPRrUNymTRs3BYNm7x44cKDVrVvXevbsafXr17e5c+e60hsAAICwKbmpV6+ejRs3zjeoX79+/ax48eI2Y8YMK1GihD333HPBTicAAEDajnNTq1Yt95DY2FibNGmSv5sCAABI/+BGM1PPnj3bli9fbocOHbICBQpY9erV7a677rKYGL83CwAAEBC/opAdO3ZYy5YtXZfwyy+/3AU26iH10Ucf2eTJk23KlCmumzgAAEBYBDcDBgxwPaRmzZrlek55rV271rp27WpDhgxxnwEAAAiLBsUambhHjx7JAhvRgH5PPPGEffnll8FKHwAAQNoHN5piITo6OsV1uXLlSnHOKQAAgJANbtTeZtiwYfbXX38lW66GxeoirvUAAABh0+ZGjYcPHDhgt912mxuwr3Dhwu695pg6fvy4m5pBVVeSKVMm18AYAAAgZIMb9ZIqU6aMe52QkOB6T0n58uV9n/FWTVFFBQAAQj64mTp1avBTAgAAEASMtgcAYSwqKpN7hJKYmKiz3p+5LBQkJnrcA5HHr+BGDYlfeuklW7FihR0+fPis9Wpn88svvwQjfQCAc1BQky9fDouODq3AIXPm5AFDvnw5LVeunBZqEhIS7eDBYwQ4Eciv4ObZZ5+1VatW2b333mv58uULfqoAAKkKbhTYjH53if21+5CFivjTJ5K97zduvsVkzmahpFihvNb5oRpuHwYruKEULXRK0fwKbhTY9O/f3+68886gJQQA4B8FNn/8dcBCRWL8yWTv/9xx0KJislokoxQttErR/ApuChYsaNmzZw9KAgAACHeUooVWKZpfwU2HDh1s5MiRrjt4sWLFgpIQAADCHaVoocGv4KZWrVo2ceJEq1evnsXGxp5ViqMGxQsWLAhWGgGEkFBsV5CR2xYACFJw07t3b9u2bZvddNNNdskll/izCQBhKFTbFWTktgUAghTcLF++3J5//nm7//77/fnvAMJUqLYryMhtCwAEKbjJkyePXXrppf78VwARINTaFWTktgUAzuZX2fJDDz1kEyZMsCNHjvjz3wEAAEKr5Gbnzp22bt061+amRIkSlitXrmTrL2Qm8H379tngwYNt0aJFdvLkSatSpYr16tXLSpYs6davX7/eBgwYYGvXrrX8+fNb69atrWXLlv4kGwAAZAB+BTdbtmxJcQbwc70/n86dO1tiYqIrCcqZM6eNGDHCBTDz58+3EydOWJs2baxOnTr24osvusED9azPaXRkZBz00AkMPXQAZCTpOiv4oUOH3Dg5GjendOnSblmnTp3snnvusd9++82WLl1qmTNntn79+llMTIwrzdm6dasLhAhuMg566ASOHjoAMpJ0nRU8b968NnToUN/7/fv32+TJk61IkSJ21VVXuYECq1at6gIbr2rVqtn48eNt7969dEPPIOihExh66ADIaFId3JQrV87ee+89q1ixopUtW9a1qzkXf2YF79u3r73//vuWJUsWGzt2rOXIkcN27drlK9HxKlSokK/dTyDBTShWHURaVUiweEts6KETmGCUfIVi6Vk4CtZ+JD8CR16EjmDuw5gLaRtTuHBh3+vzBTf+aNWqlTVt2tTeeecdt/3p06e7NjcKdpLKmvV/PxxqfOwv3cHGxoZe1UGkVYUgtOTJw3xwoYK8CB3kRWTmRaqDmy5duvhed+3aNVX/Rw2LR48e7YIWTbZ5PqqGEvWMWr16tU2bNs2yZctmp06dSvY5b1Cjkh1/qWg+Lu6YhaujR48me3/w4FE7fTr0GtsGM5rnAhS4uLjjru1NIMiL0MkLIT8CR16ET15o/6a2dCdN29yoF5SCm9q1a6cY3KiNjRoNN2jQwNeuJioqygU6u3fvdm1v9JyU9723FMlf8fGJ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F9h4lSpVyj3v2rXL7+BG4uMDP5hxfjpI2c+hg/wIHeRF6CAvIjMv/KrgUgPfjz/+2B588EE7duyYrV271jUAVsAze/bsC2oAPH36dHvppZesefPmrjt40rY0LVq0cNVUSf3888+u9KZ48eL+JB0AAEQ4vxtrqDGxqowCsWXLFhs4cKDdeuut1qFDBzfKsZfGymnQoIFbrzY3N910kwts1NZG4+AwfxUAAAgouFGJzIVo1KjRP35GPaPU+PiLL75wj6QaN25sgwcPdo2XNbCfghyNcdO6dWtr3779BaUFAABkHKkObp555plUb1QBSWqCG3Ub1+N8VF2lBwAAQFCDmy+//DK1HwUAAAj94Eazf6eWJsAEAAAImwbFp06dsilTptjy5cvda49HI+Wae1bvqU2bNtnq1auDnVYAAIC0CW7UY0lj02hQvf3791vWrFndWDeaLkENhLt06eLPZgEAANJnnJv58+e76RDmzJljDz/8sFWoUME++OADt1zVV4mJDIgEAADCKLhRaU3NmjXda5XeaPwZ79g36qY9b9684KYSAAAgLYMbzdSttjZyxRVX2M6dO32NiDVysN4DAACETXBTuXJlN7CeZgZXcJM9e3Y38aWsXLmS0YMBAEB4BTdqMKxJMlUFpcktmzVrZn379rUmTZrYiBEj3LQJAAAAYdNbqkyZMvbpp5+63lHeWcJVWrNixQqrU6cO0yMAAIDwmzhT8zzp4Z1uIaVpFNRrSnNB9evXj1m8AQBA6FZLpZYG9dNAf0ePHk3LrwEAALg4wQ0AAMDFRnADAAAiCsENEIBMUdH61/vu/94DANITwQ0QgExRMZajUDkX2OhZ7wEA6YsrMRCg3JdXcw8AQGig5AYAAEQUghsAABBR0jS40eB+RYsWtSxZsqTl1wAAAFx4m5sffvjBLkSVKlUsKirKFi5ceEH/DwAA4KIENy1atHAlMakZlVifW79+fUAJAwAASNPg5u233/brCwAAAEIyuKlatWqqN6rSGwAAgLAa52bevHluUsxTp075ghk9Hzt2zFatWmXffvttMNMJAACQdsHNqFGj3CN37twWHx9vmTNntpiYGNu/f79rRHz//ff7s1kAAID06Qo+a9Ysa9SokSu5ad26tdWuXdu+++47mzlzpuXLl89KlSoVeMoAAAAuVnDz999/29133+16RZUrV85WrlzplleoUME6duxoH3zwgT+bBQAASJ/gJkeOHL5u4VdccYVt377dTpw44d4r2NF7AACAsAlurrnmGps9e7Z7feWVV1p0dLQtXbrUvd+8eTMjEgMAgPBqUKyqpzZt2lhcXJyNGzfOGjZsaL169bIbb7zRFi9ebPXq1Qt+SgEAANIquNHUCmo8vHHjRvf+ueeec72kVqxYYbfddpv17t3bn80CAACkT3CzY8cOK1mypJUtW9a9z5o1q7300kvu9cmTJ23dunV2/fXXB546AACAi9Hmpm7duuecO2rNmjWuygoAACCkS25efvllO3jwoG8k4jFjxlhsbOxZn1PQo8H9AAAAQjq4KVGihI0dO9a9VjfwtWvXntUrSr2mFNhcSJsbBUzDhg2zr7/+2o4cOWJlypSxp556yipXruzWqxfWK6+84nphXXrppda1a1e78847U/8XAgCADCXVwY2mVPBOq1CnTh0bPXq0G9MmUN27d7c9e/a4AKdAgQI2depUe+SRR9woyCoh6tChg6vmUoCjAKhnz56WP39+q169esDfDQAAIo9fDYoXLlx43vUqgcmVK9c/bmfr1q22ZMkSmz59ut1www1uWd++fW3RokU2d+5c27dvnyvJefLJJ906NWL+5ZdfbOLEiQQ3AAAgeMGNZgKfMmXKOWcF37Rpk61evfoft6M2OxMmTHCDAnqpyksPjaHz448/njVmTrVq1WzAgAHuu7yjJAMAAAQU3AwZMsSmTZtmpUuXdjOBqyu4qop+/fVXO336tHXp0iVV28mTJ4/dcsstyZZ9/vnnrkSnT58+rmqqSJEiydYXKlTIjh8/bgcOHHDf6a+YmPN3FIuO9qsjGdJgH5IXFjL7kbwIDs6N0EFehI5g7kO/gpv58+e7djAalVgjFKuH1IgRI9yEmg8//LAlJib6lRgNAqjGyPXr17datWq5+arObLTsfa8SI39FRWWy2Nicfv9/pE6ePNnTOwlIgvwIHeRF6CAvIjMv/ApuVFpTs2ZN91qlN++//757XbhwYWvfvr299dZbqS698VqwYIH16NHDDf736quvumUqEToziPG+z57d/52QmOixuLhj/xhBctAHJi7uuCUk+BfoJkVehE5+kBfBwbkROsiL8MkL7d/Ulu74Fdyou7c3yNCs4Dt37vQ1Ii5evLh7fyFUxaV2NJq6QePpeEtn1PV79+7d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b75pmTNnTu+kAQCAEBPyXcEBAAAiqs0NAADAhSC4AQAAEYXgBgAARBSCGwAAEFEIbgAAQEQhuAEAABGF4AYAAEQUgpsAzJkzxx544AG79tpr7brrrrN7773XZsyYEdTvOHDggH3wwQe+9y1atLBnnnnG0pOGRpo1a5bt27fPIkGXLl3s/vvvP2u58rZMmTK2fPnys/Jd04IE+vefPn3aJk+ebJGkTp067nHkyJGz1um41fEbiK+++so2bdrkXmtKFuXP9u3bLRSEy3mh/NF+e+utt1Jc/9xzz7n1I0eOtP/+97/u9flovT6XHn766Sf78ccfLRxkxHNjx44d9sknn6TLdxPc+GnmzJn2/PPPux9AXdA+/PBDa9SokfXv399GjRoVtO8ZMmSI+zENJT/88IM7GY8fP26RoHr16rZ+/Xo3+rXXwYMH7eeff3YTty5atCjZ53UxVXBToECBgL73448/tkGDBlmk+euvv9xxmxbb7dixY8gGD+F0Xmh0988///ys5RoJfv78+ZYpUyb3/o477rDFixdbqGrWrJn9+eefFi4y2rnRq1evs66fFwvBjZ+mT5/uSmruu+8+u/LKK61EiRIu8m7durW9/fbbQfueUBxAOhTTFIhq1aq5UhQFM17fffedC16UxykFN//+978D/t5I249el19+ub333ntuHwZTqO+vUE/fmQH9qlWrbNeuXcmWf//995YjRw4X1Eu2bNmsYMGC6ZTKyJNRz430QHDjp6ioKFu5cqUdOnQo2fL27du7g1dUEvDaa69Z3bp17ZprrrF77rkn2d1SSkW+SZfpLlClQqoWSfq5o0ePWu/eva1y5cp2ww03uM8dO3bMt37z5s326KOPuqqym266yZ566inbs2ePb73SrHm6br75Zrv66qvdhU7vk95xau6uevXqWYUKFVxR6ujRo90JpOLOli1bus/o70qv4uhgKlmypBUuXNhWrFjhW6aARvtOjw0bNtjevXvd8v3797v9q+WnTp1yk7hqP2pfqxQv6V1uQkKCW3/LLbe4/XjbbbfZu+++69ZpvykPRXmbdNb7cNewYUN3TP3nP/9JsQjeWzL24osvun1TsWJFe/DBB5PtA1WJaMLcJ5980q6//np3V6rjTXT8ab3XN998Y3fddZfbx3feead9/fXXbvngwYPt7rvvTnbclytXzvr16+dbtnDhQpd3J0+edMf3G2+84b6nUqVK7nw9s9Q0Us4L7fOiRYvaZ599lmz5vHnz7Pbbb/eV3Jx5jVIw9Nhjj7l9VrNmTZs7d26yfakSTZ0jXirNVt4kzYPy5cv7qpJUldKkSROXnltvvdVdL3VeJc1brVd+6JjStc57zfWmS+dRelfVh9u5Iak53hcsWOCq7NX0Qr9hyoukN3t//PGHPfLII+53SMeEXm/cuNGt082+frv0G6Zz5aLT3FK4cJ9++qmnbNmynooVK3oeffRRz/jx4z2rV6/2JCYm+j7z2GOPeW655RbPV1995fn99989r7/+uqdMmTKeL774wq3/8MMPPaVLl0623aTL4uLiPI8//rinadOmnt27d7tlDz/8sFs/bNgwz9atWz0LFizwXHPNNZ7XXnvNrd+1a5enatWqnpdeesmzadMmz88//+xp3769p3bt2p6jR4+6z3Ts2NHTuHFjz6pVqzzbtm3zfPTRR56rr77a89Zbb7n1X375padKlSqexYsXe/766y/PJ5984tbPnj3bc/LkSc/nn3/u0qC/9/jx455I0LNnT0+HDh1872+66SbPnDlzPPHx8Z7KlSt7Zs2a5ZbPnz/f5fmJEyc83bt399xzzz2e77//3rNlyxbPpEmT3H5Sfsvbb7/tqVOnjuenn37ybN++3TN16lS333744Qe33yZPnuzeK2+1XyOBjjMd5/p7r7vuOs+zzz7rW9erVy93/Gqf6vi76667PMuWLfP89ttvnr59+7p9p2NKtA3tm/79+3v+/PNPz+bNm906LdPxd+TIEbff9b5+/frutc6xTp06eSpVqpRsvffc0Tmr8++OO+7wpUnf26VLF/d66NChLv3KP51bM2fOdH/DtGnTIuq88ObRkCFD3LXFS3+D/r5169b5PpP0enT69GnPnXfe6f7P2rVrPStWrHDHv9brc/qbdW5ov8i+ffvcNVLr9+7d65Z9/PHHnmrVqnkSEhI833zzjfv8u+++6/b3okWLXF5269bN9/8rVKjg9r+Opx9//NGdT3369HHrla/ats4jXStDXSidG6k53vXbofzT74K+55dffvE88sgjLv+81yultXfv3u76p7S2a9fOU69ePbfuwIED7ljRb5jy8mILi1nBQ5HuwosUKeKqoJYsWeIiZClevLgNHDjQ8uXLZ19++aWNGzfOatWq5dZ17drV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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.barplot(data=df, x=\"region\", y=\"percentage_drivers_fatal_alcohol_impaired\", errorbar=\"sd\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "collectible-puppy",
+ "metadata": {},
+ "source": [
+ "## Second Research Question: What region has the highest car insurance premiums?\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "demographic-future",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "incorporate-roller",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ "\n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, compare the average cost of car insurance and see which region is the highest.\n"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "juvenile-creation",
+ "metadata": {},
+ "source": [
+ "### Results "
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 85,
+ "id": "pursuant-surrey",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ "region\n",
+ "Midwest 756.630833\n",
+ "West 855.624545\n",
+ "Southeast 905.472500\n",
+ "Northeast 975.038889\n",
+ "Northwest 1160.163333\n",
+ "Name: car_insurance_premiums, dtype: float64"
+ ]
+ },
+ "execution_count": 85,
+ "metadata": {},
+ "output_type": "execute_result"
+ }
+ ],
+ "source": [
+ "#######################################################################\n",
+ "### 💻 YOUR WORK GOES HERE TO ANSWER THE SECOND RESEARCH QUESTION 💻 \n",
+ "###\n",
+ "### Your data analysis may include a statistic and/or a data visualization\n",
+ "#######################################################################\n",
+ "\n",
+ "df.groupby(\"region\").car_insurance_premiums.mean().sort_values()"
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 87,
+ "id": "located-night",
+ "metadata": {},
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 87,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "data": {
+ "image/png": "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v//+uz322GP2zTff2Ouvv24zZsywu+++281XWyIN7qj1Wb58ueu91rt3b1da1Lp165N6DQAAgFxXqykEDRs2zGrUqGErV6603377zW666SZXinPzzTfb/fffb6Ggkp0pU6bY0KFDrV27dnb66adb//793X2/nj17uuq1AQMGuMbXKimaOnWqGx7gZF8DAAAgV+EoLS3NjSckH3zwgWv8XLduXfdY1VfeMYX+F8OHDz9mWs2aNe3ll18+7nMSEhLswQcfdLfj+aPXAAAgHKgntG7hJDFCuvKro5RuoRBUitG4QRqBWu12Fi9ebJdccokLRApNugxI9nGFAADAiSkUlShRKOzGsMoXIV351UkhOflQSAJSUOFIVVm6RpmCkNr96GKvcsUVV7hRpydOnJjrFQNiycyZU2zJkkV2xRVXWefO3fJ6dQDkUThSMBr/0irbsec/Y/WFg/S0I1keD5641BLz/f/wOeGgQpnidt8tTdw2zLNw1KRJE3vzzTft888/d5f8qFChgpveuXNnd2kOfzd6AH9M424tXrzIfL5MF5BuvrlTYKBSALFHwei7HfstXGSmZx0w+YedyRafGN3nqKDHOTrrrLPczUvhCMD/Jj09zQUjyczU+CFphCMAiLRwpO77s2fPtk8++cSNK5RdXFyczZw5MxTrBwAAEP7haPDgwTZv3jyrUqWKlShR4pj5Pl9oWosDAABERDh699133VhGapQNAAAQTYLqLxgfH2916tQJ/doAAABEYjhq27atq1ZT41EAAACL9Wo1XWRWAUnjGlWvXt2NkJ29QbYuLwIAABAT4UgXet2+fbsLRZs2bTpmvsIRAABAzISjhQsX2u233+4u4Kr2RwAAANEiqGSji8u2aNGCYAQAAKJOUOmmVatW9s4774R+bQAAACKxWk3XU1O7o61bt7ou/YULFz6mzRFjIAEAgJgJRwMHDnR/N27c6G7ZEY4AAEBMhSOVGAEAAEQjWlQDAADktuTokUce+cNlnn766WBeOurEx8e5W7hJTIw/5nH2aXktM9PnbgAAhH04Wrt27THTDh06ZMnJyVaiRAmrUaNGKNYt4ikUlShRyBISwit0SL58WUNHiRKFrUiRrA3r81pGRqYlJx8iIAEAwj8crVixIsfp27Ztsx49erhLi+A/4UjBaPxLq2zHngMWTtLTjmR5PHjiUkvMl2Th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ACBcS47q1atn06dPt4IFC7ogpAbZM2bMcF36J02aZI0aNQr9mgIAAITzOEca3HHu3LmuC/+BAwesSJEiDPYIAABid4TsyZMn21133WVJSUlWtmxZ++KLL+ySSy6x2bNnh3YNAQAAwj0cTZs2zcaMGWMVK1YMTDv77LPtyiuvtOHDh9urr74aynUEAAAI72o1Vaf16tXLlRz5lS9f3gYMGGCnnXaaa3/UoUOHUK4nAABA+JYc7d6923Xnz0mtWrXsp59+yu16AQAARE44qlChgq1evTrHeevXr7dy5crldr0AAAAip1rtxhtvtBEjRriRsC+//HIrXbq0uxitLiuiLv59+/YN/ZoCAACEazjSAJCqWps1a5ZrX+S9dEjnzp3tjjvuCOU6AgAAhP84Rw899JDde++99umnn7pxjooVK2Y1a9a0kiVLhnYNAQAAIiEcSdGiRa1Zs2ahWxsAAMwsLj5B/5qZz/39z2MgjMORRsX+xz/+4doYHT582DIzM7PM17XWli1bFqp1BADEmLj4RCtU5nw7tGeL+6vHwKkS1Kdt6NChNm/ePGvQoIGdf/75Fh8f9EDbAADkqOhZjdwNiIhwtHTpUuvdu3eWQSABAACiQVBFPurCr8bXp9KCBQvsqquucoNPtmnTxt55553APA06effdd9tFF13kru+mS5tkZGRkef6LL75ol112mVvvW2+91TZv3nxK1x8AAERxOFIA+eCDD+xUeeONN+yxxx6zv/3tb/b222/b1VdfbX369HE95RTUunbtGrisycCBA+2ll16y8ePHB54/f/58e/bZZ+2BBx6w119/3c4880w33IDGZgIAAMh1tZpKcJ588kkXLnS5kIIFCx6zTNu2bS0UfD6f/f3vf7fbbrvNhSO55557bMOGDbZu3TrbsWOH7dy501555RUrXry4nXfeefbrr7+6MNS9e3fLnz+/TZw40Tp27GjXXnute/6wYcPc4JW6QK5KnAAAAHIVjnTRWX9Vl27ZqbdaqMLR9u3bXQC65pprskyfOnWq+6uSourVq7tg5NeoUSP7/fffbcuWLa6U6LvvvrPGjRsH5icmJlq9evXcpU4IRwAAINfhaPny5XaqKBzJoUOHXPWZ2gop8Kj0qGXLlrZr165jruVWpkwZ9/fnn392QUjKly9/zDJbt27N1bolJp64VjIhgV58uRWqbci+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WbNm9s0334R2LQEAAMI5HKlN0SeffBK4r0bZuoaZv5s8V7sHAAAxVa128803u0EYDx06ZL1793YXetW11m644QabPXu2a48EAAAQMyVHHTp0cOMK+UuIBg8e7ILSsGHD3GCMmgcAABCJgr587cGDB23btm3uvkaeVkBSd/7OnTvn+rIcAAAAERWO1DttzJgxVrFixcA03ddI1M8884y9+uqroVxHAACA8G5zpGuZ9erVy+66667AtPLly7sRqE877TR3+Q5VvQEAAMREyZEuHVKjRo0c59WqVct++umn3K4XAABA5IQjXbx19erVOc5bv369u6grAABAzFSr3Xjjje7K9mlpaXb55Ze7i7/u27fP3nvvPZs+fbr17ds39GsKAAAQruHo9ttvd1Vrs2bNcu2L/HRdNfVWu+OOO0K5jgAAAOEdjuShhx6ye++91zZu3GjJyclWrFgxq1mzppUsWTK0awgAABAJ4UiKFi1qTZs2Dd3aAAAAROogkAAAANGIcAQAAOBBOAIAAPAgHAEAAHgQjgAAADwIRwAAAB6EIwAAAA/CEQAAgAfhCAAAwINwBAAA4EE4AgAA8CAcAQAAeBCOAAAAPAhHAAAAHoQjAAAAD8IRAACAB+EIAADAg3AEAADgQTgCAADwIBwBAAB4EI4AAAA8CEcAAAAehCMAAAAPwhEAAIAH4QgAAMCDcAQAAOBBOAIAAPAgHAEAAERaOEpOTrYnnnjCmjVrZhdddJHdcssttmHDhsD81atXW/v27a1WrVp25ZVX2ttvv53l+ampqTZo0CBr3Lix1alTx/r27Wv79u3Lg3cCAADCXUSEoz59+tinn35qo0aNstdee83OP/9869q1q3377be2bds2u/vuu61p06b2+uuvW4cOHax///4uMPkNHDjQVq5caePGjbOZM2e65/Xs2TNP3xMAAAhPiRbmvv/+e1u1apXNmTPH6tat66Y9/vjj9uGHH9qbb75pv/76q1WtWtV69+7t5lWuXNk2b95sU6ZMcSVFu3fvtgULFtjEiROtXr16bhmFLJUwKXCpJAkAACBiSo5KlixpkydPtho1agSmxcXFuVtKSoqrXlMI8mrUqJF9/PHH5vP53F//NL9KlSpZ2bJlbf369afwnQAAgEgQ9uGoWLFidumll1r+/PkD05YsWeJKlFSVtmvXLitXrlyW55QpU8YO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cOBAlul33XWX+/CLSiLGjBljl112mdWoUcOuu+66LL/Wciqy9k7Tr1CVSqlax7vcwYMH7ZFHHrF69epZ3bp13XKHDh0KzN+2bZvdeeedrqrvkksusb59+9ovv/wSmK911nXqmjZtatWrV3cnSj32/uLVtesuv/xyu/DCC11R8Pjx490BqOLa2267zS2j95VXxemhVLlyZStbtqx98skngWkKRNp2um3dutX27t3rpu/bt89tX00/evSouwiytqO2tUoRvb+yMzIy3PxLL73Ubccrr7zSXnrpJTdP2037ULRvtV2jxbXXXus+U4899liOVQj+krlBgwa5bVOzZk27+eabs2wDVenogtO9e/e2iy66yP0q1udN9PnTfL/333/frr76areN27RpY//617/c9OHDh9s111yT5XN//vnn2+DBgwPTVqxY4fZdamqq+3z/85//dP9PrVq13PGavdQ2Wo4LbfMzzjjDFi9enGX6okWL7K9//Wug5Cj7OUph6p577nHbrFmzZvbmm29m2ZYqUdUx4qfSdO0b7z644IILAlVhqgpq3769W59WrVq586WOK+++1XztD32mdK7zn3P966XjKK+bGkTasSEn83lftmyZa3KgpiP6DtO+8P5Y/O6776xr167ue0ifCd3/6quv3DwVFui7S99hOlZOKV1bDXnjnXfe8VWrVs1Xs2ZN35133umbNGmS77PPPvNlZmYGlrnnnnt8l156qe+9997zffvtt76xY8f6qlat6nv33Xfd/Ndee8133nnnZXld77SUlBTfAw884Lvpppt8e/bscdM6duzo5o8aNcr3/fff+5YtW+arUaOGb8yYMW7+rl27fA0aNPANGTLE98033/g+//xz31133eVr0aKF7+DBg26Z7t27+9q1a+fbuHGj78cff/S98cYbvurVq/umT5/u5i9fvtxXv35938qVK307duzwvf32227+ggULfKmpqb4lS5a4ddD7PXz4sC8a9O/f33f33XcHHl9yySW+hQsX+tLT03316tXzzZ8/301funSp2+dHjhzx9enTx3fdddf51qxZ49u+fbtv2rRpbjtpf8sLL7zga9mype/jjz/2/fTTT75Zs2a57bZ+/Xq33WbMmOEea99qu0YDfc70Odf7rVOnjm/AgAGBeQ899JD7/Gqb6vN39dVX+9auXev7+uuvfY8//rjbdvpMiV5D2+app57y/fDDD75t27a5eZqmz9/vv//utrset27d2t3XMXbvvff6atWqlWW+/9jRMavj76qrrgqsk/7fHj16uPvPPfecW3/tPx1b8+bNc+9h9uzZUXVc+PfRs88+684tfnoPen9ffvllYBnv+SgtLc3Xpk0b95wvvvjC98knn7jPv+ZrOb1nHRvaLvLrr7+6c6Tm792710176623fI0aNfJlZGT43n//fbf8Sy+95Lb3hx9+6PZlz549A8+/8MIL3fbX52nDhg3ueHr00UfdfO1XvbaOI50rw104HRsn83nXd4f2n74X9P9s3rzZ17VrV7f//Ocrresjjzzizn9a127duvkuv/xyN2///v3us6LvMO3LUynx1EYxeKkUoFy5cq4KbdWqVS6hS8WKFW3YsGFWokQJW758uU2cONGaN2/u5t1///2uFELT9OvzjxQtWtQVa6t9gLdoW78m9KtBzj77bGvSpIl98cUX7rFKJrReKgny068xVR3pV6KSv5avX79+4JfXmWeeabNnz7Z///vf7rHq8PPnz28VKlRwvy51K1OmjPur6cWLF3fLlSpVyq1fNNCvObX/0a8p/fJRSZu2U0JCgpunX0v6Fax2JSqx0y9otRlasGCBK42QO+64w+1flS5on2s7qopC21fbT7/2VP2qalhtN+1ficZqC3121N5AjXuvuOIKV9Lmp9K1L7/80pU6nHfeeW6afimrWlPb7u9//3tg2Z49ewa2k79xqT5/hQsXDizz6KOPWsOGDd39++67z/3aVemefs1qWR2f2neqytCvZM1XSeBpp51mH3zwgfXq1cuVvKpx/KhRowLHq44tteXQOv3tb3+LuuNCJUR6b7t373Ylp9pOWneV7ORk9erV9vXXX9u7777rto3omNG2Fb1nHSvav2qrpO2t19KxpJIPTVPJhbavSt51HlRpq0pGRK+pz0Hnzp3dvv7tt99cKZK2r7a5bnqOSmS9x40+H/7PSCQIh2PjL3/5yx9+3nXue/zxx127Lj+VTKlWQm2bVPWqY0JNDPSe9D2l775vv/3WMjMz3Xegpulzoc/VqUQ4ymMqatRNHwR9KSogKWTow6OG2aITtJdCiT6QuaEA5qUDQh9q2bx5szuBqYjTS9UGOihEH3YVgau4U8Wi6uGgg0tf3P6iXzUw14Grg0gfft3XSSpa6aSu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",
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
+ "source": [
+ "sns.barplot(data=df, x=\"region\", y=\"car_insurance_premiums\", errorbar=\"sd\")"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "8ab785a8-ac72-4fec-8d4b-7ad7f93de32d",
+ "metadata": {},
+ "source": [
+ "## Third Research Question: What region is the most unlucky state for fatal collisions?"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "810dc600-da04-437d-a546-4d6c5bec01c6",
+ "metadata": {},
+ "source": [
+ "### Methods"
+ ]
+ },
+ {
+ "cell_type": "markdown",
+ "id": "be64d030-0f40-4c32-ac3e-be494e64b3a7",
+ "metadata": {},
+ "source": [
+ "*Explain how you will approach this research question below. Consider the following:* \n",
+ " - *Which aspects of the dataset will you use?* \n",
+ " - *How will you reorganize/store the data?* \n",
+ " - *What data science tools/functions will you use and why?* \n",
+ "\n",
+ "✏️ *Write your answer below:*\n",
+ "\n",
+ "To answer this question, I will organize the data for each state by the region it is in. Then, compare the average percentage of Drivers Involved In Fatal Collisions Who Were Not Distracted and the average percentage of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents."
+ ]
+ },
+ {
+ "cell_type": "code",
+ "execution_count": 94,
+ "id": "096fe314-2953-4644-86e0-cd717f77eb8f",
+ "metadata": {},
"outputs": [
{
"data": {
@@ -290,210 +587,181 @@
" \n",
"
\n",
"
\n",
- "
State
\n",
- "
Number of drivers involved in fatal collisions per billion miles
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted
\n",
- "
Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents
\n",
- "
Car Insurance Premiums ($)
\n",
- "
Losses incurred by insurance companies for collisions per insured driver ($)
\n",
+ "
percentage_drivers_fatal_not_distracted
\n",
+ "
percentage_drivers_fatal_no_previous_accidents
\n",
+ "
\n",
+ "
\n",
+ "
region
\n",
+ "
\n",
+ "
\n",
"
\n",
" \n",
" \n",
"
\n",
- "
32
\n",
- "
New York
\n",
- "
12.3
\n",
- "
32
\n",
- "
29
\n",
- "
88
\n",
- "
80
\n",
- "
1234.31
\n",
- "
150.01
\n",
+ "
Midwest
\n",
+ "
88.833333
\n",
+ "
86.666667
\n",
+ "
\n",
+ "
\n",
+ "
Northeast
\n",
+ "
87.777778
\n",
+ "
85.111111
\n",
+ "
\n",
+ "
\n",
+ "
Northwest
\n",
+ "
91.333333
\n",
+ "
93.666667
\n",
+ "
\n",
+ "
\n",
+ "
Southeast
\n",
+ "
83.000000
\n",
+ "
89.312500
\n",
+ "
\n",
+ "
\n",
+ "
West
\n",
+ "
84.000000
\n",
+ "
91.727273
\n",
"
\n",
" \n",
"\n",
""
],
"text/plain": [
- " State \\\n",
- "32 New York \n",
+ " percentage_drivers_fatal_not_distracted \\\n",
+ "region \n",
+ "Midwest 88.833333 \n",
+ "Northeast 87.777778 \n",
+ "Northwest 91.333333 \n",
+ "Southeast 83.000000 \n",
+ "West 84.000000 \n",
"\n",
- " Number of drivers involved in fatal collisions per billion miles \\\n",
- "32 12.3 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding \\\n",
- "32 32 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired \\\n",
- "32 29 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted \\\n",
- "32 88 \n",
- "\n",
- " Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents \\\n",
- "32 80 \n",
- "\n",
- " Car Insurance Premiums ($) \\\n",
- "32 1234.31 \n",
- "\n",
- " Losses incurred by insurance companies for collisions per insured driver ($) \n",
- "32 150.01 "
+ " percentage_drivers_fatal_no_previous_accidents \n",
+ "region \n",
+ "Midwest 86.666667 \n",
+ "Northeast 85.111111 \n",
+ "Northwest 93.666667 \n",
+ "Southeast 89.312500 \n",
+ "West 91.727273 "
]
},
- "execution_count": 40,
+ "execution_count": 94,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
- "\n",
- "Northeast = df[df.State == \"New York\"]\n",
- "Northeast"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "infinite-instrument",
- "metadata": {},
- "source": [
- "# Methods and Results"
+ "region = df.groupby(\"region\")\n",
+ "region[[\"percentage_drivers_fatal_not_distracted\", \"percentage_drivers_fatal_no_previous_accidents\"]].mean().sort_values(\"region\")"
]
},
{
"cell_type": "code",
- "execution_count": null,
- "id": "basic-canadian",
+ "execution_count": 98,
+ "id": "3777e6d1-08a5-4747-9100-9af86f88e90a",
"metadata": {},
- "outputs": [],
+ "outputs": [
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "execution_count": 98,
+ "metadata": {},
+ "output_type": "execute_result"
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "Error in callback (for post_execute), with arguments args (),kwargs {}:\n"
+ ]
+ },
+ {
+ "ename": "ConversionError",
+ "evalue": "Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1822\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_converter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:57\u001b[0m, in \u001b[0;36mStrCategoryConverter.convert\u001b[0;34m(value, unit, axis)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;66;03m# force an update so it also does type checking\u001b[39;00m\n\u001b[0;32m---> 57\u001b[0m \u001b[43munit\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 58\u001b[0m s \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mvectorize(unit\u001b[38;5;241m.\u001b[39m_mapping\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__getitem__\u001b[39m, otypes\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mfloat\u001b[39m])(values)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:217\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m OrderedDict\u001b[38;5;241m.\u001b[39mfromkeys(data):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[0;32m--> 217\u001b[0m \u001b[43m_api\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_isinstance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mbytes\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[1;32m 219\u001b[0m \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_api/__init__.py:92\u001b[0m, in \u001b[0;36mcheck_isinstance\u001b[0;34m(types, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m names\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{!r}\u001b[39;00m\u001b[38;5;124m must be an instance of \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m, not a \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 94\u001b[0m k,\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(names[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m or \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m names[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(names) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m names[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 97\u001b[0m type_name(\u001b[38;5;28mtype\u001b[39m(v))))\n",
+ "\u001b[0;31mTypeError\u001b[0m: 'value' must be an instance of str or bytes, not a float",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[0;31mConversionError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/pyplot.py:279\u001b[0m, in \u001b[0;36m_draw_all_if_interactive\u001b[0;34m()\u001b[0m\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21m_draw_all_if_interactive\u001b[39m() \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 278\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m matplotlib\u001b[38;5;241m.\u001b[39mis_interactive():\n\u001b[0;32m--> 279\u001b[0m \u001b[43mdraw_all\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_pylab_helpers.py:131\u001b[0m, in \u001b[0;36mGcf.draw_all\u001b[0;34m(cls, force)\u001b[0m\n\u001b[1;32m 129\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m manager \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mcls\u001b[39m\u001b[38;5;241m.\u001b[39mget_all_fig_managers():\n\u001b[1;32m 130\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m force \u001b[38;5;129;01mor\u001b[39;00m manager\u001b[38;5;241m.\u001b[39mcanvas\u001b[38;5;241m.\u001b[39mfigure\u001b[38;5;241m.\u001b[39mstale:\n\u001b[0;32m--> 131\u001b[0m \u001b[43mmanager\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw_idle\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backend_bases.py:1891\u001b[0m, in \u001b[0;36mFigureCanvasBase.draw_idle\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 1889\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_is_idle_drawing:\n\u001b[1;32m 1890\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_idle_draw_cntx():\n\u001b[0;32m-> 1891\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backends/backend_agg.py:382\u001b[0m, in \u001b[0;36mFigureCanvasAgg.draw\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 379\u001b[0m \u001b[38;5;66;03m# Acquire a lock on the shared font cache.\u001b[39;00m\n\u001b[1;32m 380\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m (\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\u001b[38;5;241m.\u001b[39m_wait_cursor_for_draw_cm() \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mtoolbar\n\u001b[1;32m 381\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m nullcontext()):\n\u001b[0;32m--> 382\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 383\u001b[0m \u001b[38;5;66;03m# A GUI class may be need to update a window using this draw, so\u001b[39;00m\n\u001b[1;32m 384\u001b[0m \u001b[38;5;66;03m# don't forget to call the superclass.\u001b[39;00m\n\u001b[1;32m 385\u001b[0m \u001b[38;5;28msuper\u001b[39m()\u001b[38;5;241m.\u001b[39mdraw()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:94\u001b[0m, in \u001b[0;36m_finalize_rasterization..draw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 94\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[1;32m 96\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/figure.py:3257\u001b[0m, in \u001b[0;36mFigure.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3254\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[1;32m 3256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[0;32m-> 3257\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3258\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3260\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfigure\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3261\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axes/_base.py:3181\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3178\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[1;32m 3179\u001b[0m _draw_rasterized(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m), artists_rasterized, renderer)\n\u001b[0;32m-> 3181\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3182\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3184\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3185\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:1017\u001b[0m, in \u001b[0;36m_CollectionWithSizes.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1014\u001b[0m \u001b[38;5;129m@artist\u001b[39m\u001b[38;5;241m.\u001b[39mallow_rasterization\n\u001b[1;32m 1015\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw\u001b[39m(\u001b[38;5;28mself\u001b[39m, renderer):\n\u001b[1;32m 1016\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_sizes(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sizes, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\u001b[38;5;241m.\u001b[39mdpi)\n\u001b[0;32m-> 1017\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:360\u001b[0m, in \u001b[0;36mCollection.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 356\u001b[0m renderer\u001b[38;5;241m.\u001b[39mopen_group(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_gid())\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupdate_scalarmappable()\n\u001b[0;32m--> 360\u001b[0m transform, offset_trf, offsets, paths \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_prepare_points\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 362\u001b[0m gc \u001b[38;5;241m=\u001b[39m renderer\u001b[38;5;241m.\u001b[39mnew_gc()\n\u001b[1;32m 363\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_gc_clip(gc)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:332\u001b[0m, in \u001b[0;36mCollection._prepare_points\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 330\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(ys)\n\u001b[1;32m 331\u001b[0m paths\u001b[38;5;241m.\u001b[39mappend(mpath\u001b[38;5;241m.\u001b[39mPath(np\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys]), path\u001b[38;5;241m.\u001b[39mcodes))\n\u001b[0;32m--> 332\u001b[0m xs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_xunits\u001b[49m\u001b[43m(\u001b[49m\u001b[43moffsets\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 333\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(offsets[:, \u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 334\u001b[0m offsets \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mma\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys])\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:278\u001b[0m, in \u001b[0;36mArtist.convert_xunits\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ax \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m ax\u001b[38;5;241m.\u001b[39mxaxis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43max\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxaxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1824\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_converter\u001b[38;5;241m.\u001b[39mconvert(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits, \u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m-> 1824\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m munits\u001b[38;5;241m.\u001b[39mConversionError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed to convert value(s) to axis \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1825\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 1826\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
+ "\u001b[0;31mConversionError\u001b[0m: Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)"
+ ]
+ },
+ {
+ "ename": "ConversionError",
+ "evalue": "Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)",
+ "output_type": "error",
+ "traceback": [
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
+ "\u001b[0;31mTypeError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1822\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1821\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[0;32m-> 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_converter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43munits\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:57\u001b[0m, in \u001b[0;36mStrCategoryConverter.convert\u001b[0;34m(value, unit, axis)\u001b[0m\n\u001b[1;32m 56\u001b[0m \u001b[38;5;66;03m# force an update so it also does type checking\u001b[39;00m\n\u001b[0;32m---> 57\u001b[0m \u001b[43munit\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mvalues\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 58\u001b[0m s \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mvectorize(unit\u001b[38;5;241m.\u001b[39m_mapping\u001b[38;5;241m.\u001b[39m\u001b[38;5;21m__getitem__\u001b[39m, otypes\u001b[38;5;241m=\u001b[39m[\u001b[38;5;28mfloat\u001b[39m])(values)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/category.py:217\u001b[0m, in \u001b[0;36mUnitData.update\u001b[0;34m(self, data)\u001b[0m\n\u001b[1;32m 215\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m OrderedDict\u001b[38;5;241m.\u001b[39mfromkeys(data):\n\u001b[1;32m 216\u001b[0m \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[0;32m--> 217\u001b[0m \u001b[43m_api\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcheck_isinstance\u001b[49m\u001b[43m(\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mstr\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mbytes\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mvalue\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mval\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 218\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[1;32m 219\u001b[0m \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/_api/__init__.py:92\u001b[0m, in \u001b[0;36mcheck_isinstance\u001b[0;34m(types, **kwargs)\u001b[0m\n\u001b[1;32m 91\u001b[0m names\u001b[38;5;241m.\u001b[39mappend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNone\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[0;32m---> 92\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m(\n\u001b[1;32m 93\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{!r}\u001b[39;00m\u001b[38;5;124m must be an instance of \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m, not a \u001b[39m\u001b[38;5;132;01m{}\u001b[39;00m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mformat(\n\u001b[1;32m 94\u001b[0m k,\n\u001b[1;32m 95\u001b[0m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m, \u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;241m.\u001b[39mjoin(names[:\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]) \u001b[38;5;241m+\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m or \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;241m+\u001b[39m names[\u001b[38;5;241m-\u001b[39m\u001b[38;5;241m1\u001b[39m]\n\u001b[1;32m 96\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mlen\u001b[39m(names) \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m \u001b[38;5;28;01melse\u001b[39;00m names[\u001b[38;5;241m0\u001b[39m],\n\u001b[1;32m 97\u001b[0m type_name(\u001b[38;5;28mtype\u001b[39m(v))))\n",
+ "\u001b[0;31mTypeError\u001b[0m: 'value' must be an instance of str or bytes, not a float",
+ "\nThe above exception was the direct cause of the following exception:\n",
+ "\u001b[0;31mConversionError\u001b[0m Traceback (most recent call last)",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/IPython/core/formatters.py:402\u001b[0m, in \u001b[0;36mBaseFormatter.__call__\u001b[0;34m(self, obj)\u001b[0m\n\u001b[1;32m 400\u001b[0m \u001b[38;5;28;01mpass\u001b[39;00m\n\u001b[1;32m 401\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 402\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mprinter\u001b[49m\u001b[43m(\u001b[49m\u001b[43mobj\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 403\u001b[0m \u001b[38;5;66;03m# Finally look for special method names\u001b[39;00m\n\u001b[1;32m 404\u001b[0m method \u001b[38;5;241m=\u001b[39m get_real_method(obj, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mprint_method)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/IPython/core/pylabtools.py:170\u001b[0m, in \u001b[0;36mprint_figure\u001b[0;34m(fig, fmt, bbox_inches, base64, **kwargs)\u001b[0m\n\u001b[1;32m 167\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mbackend_bases\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m FigureCanvasBase\n\u001b[1;32m 168\u001b[0m FigureCanvasBase(fig)\n\u001b[0;32m--> 170\u001b[0m \u001b[43mfig\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcanvas\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mprint_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbytes_io\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkw\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 171\u001b[0m data \u001b[38;5;241m=\u001b[39m bytes_io\u001b[38;5;241m.\u001b[39mgetvalue()\n\u001b[1;32m 172\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m fmt \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124msvg\u001b[39m\u001b[38;5;124m'\u001b[39m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/backend_bases.py:2155\u001b[0m, in \u001b[0;36mFigureCanvasBase.print_figure\u001b[0;34m(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)\u001b[0m\n\u001b[1;32m 2152\u001b[0m \u001b[38;5;66;03m# we do this instead of `self.figure.draw_without_rendering`\u001b[39;00m\n\u001b[1;32m 2153\u001b[0m \u001b[38;5;66;03m# so that we can inject the orientation\u001b[39;00m\n\u001b[1;32m 2154\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m \u001b[38;5;28mgetattr\u001b[39m(renderer, \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m_draw_disabled\u001b[39m\u001b[38;5;124m\"\u001b[39m, nullcontext)():\n\u001b[0;32m-> 2155\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfigure\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2156\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches:\n\u001b[1;32m 2157\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m bbox_inches \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtight\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:94\u001b[0m, in \u001b[0;36m_finalize_rasterization..draw_wrapper\u001b[0;34m(artist, renderer, *args, **kwargs)\u001b[0m\n\u001b[1;32m 92\u001b[0m \u001b[38;5;129m@wraps\u001b[39m(draw)\n\u001b[1;32m 93\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw_wrapper\u001b[39m(artist, renderer, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m---> 94\u001b[0m result \u001b[38;5;241m=\u001b[39m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 95\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m renderer\u001b[38;5;241m.\u001b[39m_rasterizing:\n\u001b[1;32m 96\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstop_rasterizing()\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/figure.py:3257\u001b[0m, in \u001b[0;36mFigure.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3254\u001b[0m \u001b[38;5;66;03m# ValueError can occur when resizing a window.\u001b[39;00m\n\u001b[1;32m 3256\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mpatch\u001b[38;5;241m.\u001b[39mdraw(renderer)\n\u001b[0;32m-> 3257\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3258\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3260\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mfigure\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3261\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axes/_base.py:3181\u001b[0m, in \u001b[0;36m_AxesBase.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 3178\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artists_rasterized:\n\u001b[1;32m 3179\u001b[0m _draw_rasterized(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m), artists_rasterized, renderer)\n\u001b[0;32m-> 3181\u001b[0m \u001b[43mmimage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_draw_list_compositing_images\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 3182\u001b[0m \u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43martists\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_figure\u001b[49m\u001b[43m(\u001b[49m\u001b[43mroot\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mTrue\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msuppressComposite\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 3184\u001b[0m renderer\u001b[38;5;241m.\u001b[39mclose_group(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124maxes\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m 3185\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstale \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/image.py:134\u001b[0m, in \u001b[0;36m_draw_list_compositing_images\u001b[0;34m(renderer, parent, artists, suppress_composite)\u001b[0m\n\u001b[1;32m 132\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m not_composite \u001b[38;5;129;01mor\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m has_images:\n\u001b[1;32m 133\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m a \u001b[38;5;129;01min\u001b[39;00m artists:\n\u001b[0;32m--> 134\u001b[0m \u001b[43ma\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 135\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 136\u001b[0m \u001b[38;5;66;03m# Composite any adjacent images together\u001b[39;00m\n\u001b[1;32m 137\u001b[0m image_group \u001b[38;5;241m=\u001b[39m []\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:1017\u001b[0m, in \u001b[0;36m_CollectionWithSizes.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 1014\u001b[0m \u001b[38;5;129m@artist\u001b[39m\u001b[38;5;241m.\u001b[39mallow_rasterization\n\u001b[1;32m 1015\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21mdraw\u001b[39m(\u001b[38;5;28mself\u001b[39m, renderer):\n\u001b[1;32m 1016\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_sizes(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_sizes, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_figure(root\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m)\u001b[38;5;241m.\u001b[39mdpi)\n\u001b[0;32m-> 1017\u001b[0m \u001b[38;5;28;43msuper\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:71\u001b[0m, in \u001b[0;36mallow_rasterization..draw_wrapper\u001b[0;34m(artist, renderer)\u001b[0m\n\u001b[1;32m 68\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 69\u001b[0m renderer\u001b[38;5;241m.\u001b[39mstart_filter()\n\u001b[0;32m---> 71\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mdraw\u001b[49m\u001b[43m(\u001b[49m\u001b[43martist\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mrenderer\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 72\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 73\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m artist\u001b[38;5;241m.\u001b[39mget_agg_filter() \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:360\u001b[0m, in \u001b[0;36mCollection.draw\u001b[0;34m(self, renderer)\u001b[0m\n\u001b[1;32m 356\u001b[0m renderer\u001b[38;5;241m.\u001b[39mopen_group(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__class__\u001b[39m\u001b[38;5;241m.\u001b[39m\u001b[38;5;18m__name__\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mget_gid())\n\u001b[1;32m 358\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mupdate_scalarmappable()\n\u001b[0;32m--> 360\u001b[0m transform, offset_trf, offsets, paths \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_prepare_points\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 362\u001b[0m gc \u001b[38;5;241m=\u001b[39m renderer\u001b[38;5;241m.\u001b[39mnew_gc()\n\u001b[1;32m 363\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_set_gc_clip(gc)\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/collections.py:332\u001b[0m, in \u001b[0;36mCollection._prepare_points\u001b[0;34m(self)\u001b[0m\n\u001b[1;32m 330\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(ys)\n\u001b[1;32m 331\u001b[0m paths\u001b[38;5;241m.\u001b[39mappend(mpath\u001b[38;5;241m.\u001b[39mPath(np\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys]), path\u001b[38;5;241m.\u001b[39mcodes))\n\u001b[0;32m--> 332\u001b[0m xs \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_xunits\u001b[49m\u001b[43m(\u001b[49m\u001b[43moffsets\u001b[49m\u001b[43m[\u001b[49m\u001b[43m:\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m0\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 333\u001b[0m ys \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconvert_yunits(offsets[:, \u001b[38;5;241m1\u001b[39m])\n\u001b[1;32m 334\u001b[0m offsets \u001b[38;5;241m=\u001b[39m np\u001b[38;5;241m.\u001b[39mma\u001b[38;5;241m.\u001b[39mcolumn_stack([xs, ys])\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/artist.py:278\u001b[0m, in \u001b[0;36mArtist.convert_xunits\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 276\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m ax \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mor\u001b[39;00m ax\u001b[38;5;241m.\u001b[39mxaxis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m 277\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m x\n\u001b[0;32m--> 278\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43max\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mxaxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconvert_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\n",
+ "File \u001b[0;32m~/Library/Caches/pypoetry/virtualenvs/lab-pokemon-8CYd8AD7-py3.13/lib/python3.13/site-packages/matplotlib/axis.py:1824\u001b[0m, in \u001b[0;36mAxis.convert_units\u001b[0;34m(self, x)\u001b[0m\n\u001b[1;32m 1822\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_converter\u001b[38;5;241m.\u001b[39mconvert(x, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits, \u001b[38;5;28mself\u001b[39m)\n\u001b[1;32m 1823\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mException\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m-> 1824\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m munits\u001b[38;5;241m.\u001b[39mConversionError(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mFailed to convert value(s) to axis \u001b[39m\u001b[38;5;124m'\u001b[39m\n\u001b[1;32m 1825\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124munits: \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mx\u001b[38;5;132;01m!r}\u001b[39;00m\u001b[38;5;124m'\u001b[39m) \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01me\u001b[39;00m\n\u001b[1;32m 1826\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m ret\n",
+ "\u001b[0;31mConversionError\u001b[0m: Failed to convert value(s) to axis units: masked_array(data=[--, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --, --, --, --, --, --,\n --, --, --, --, --, --, --, --, --],\n mask=[ True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True, True, True, True, True, True,\n True, True, True],\n fill_value=1e+20,\n dtype=float64)"
+ ]
+ },
+ {
+ "data": {
+ "text/plain": [
+ ""
+ ]
+ },
+ "metadata": {},
+ "output_type": "display_data"
+ }
+ ],
"source": [
- "#Import any helper files you need here"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "recognized-positive",
- "metadata": {},
- "source": [
- "## First Research Question: Is drinking and driving the biggest cause of fatal collisions?"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "graduate-palmer",
- "metadata": {},
- "source": [
- "### Methods"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "endless-variation",
- "metadata": {},
- "source": [
- "*Explain how you will approach this research question below. Consider the following:* \n",
- " - *Which aspects of the dataset will you use?* \n",
- " - *How will you reorganize/store the data?* \n",
- " - *What data science tools/functions will you use and why?* \n",
- " \n",
- "✏️ *Write your answer below:*\n",
+ "favorite_types = df[df.region.isin([\"percentage_drivers_fatal_not_distracted\", \"percentage_drivers_fatal_no_previous_accidents\"])]\n",
+ "sns.relplot(data=df, x=\"region\", )\n",
"\n"
]
},
- {
- "cell_type": "markdown",
- "id": "portuguese-japan",
- "metadata": {},
- "source": [
- "### Results "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 17,
- "id": "negative-highlight",
- "metadata": {},
- "outputs": [],
- "source": [
- "#######################################################################\n",
- "### 💻 YOUR WORK GOES HERE TO ANSWER THE FIRST RESEARCH QUESTION 💻 \n",
- "### \n",
- "### Your data analysis may include a statistic and/or a data visualization\n",
- "#######################################################################"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 16,
- "id": "victorian-burning",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 💻 YOU CAN ADD NEW CELLS WITH THE \"+\" BUTTON "
- ]
- },
- {
- "cell_type": "markdown",
- "id": "collectible-puppy",
- "metadata": {},
- "source": [
- "## Second Research Question: What state is the most unluckiest state for fatel collisions?\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "demographic-future",
- "metadata": {},
- "source": [
- "### Methods"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "incorporate-roller",
- "metadata": {},
- "source": [
- "*Explain how you will approach this research question below. Consider the following:* \n",
- " - *Which aspects of the dataset will you use?* \n",
- " - *How will you reorganize/store the data?* \n",
- " - *What data science tools/functions will you use and why?* \n",
- "\n",
- "✏️ *Write your answer below:*\n"
- ]
- },
- {
- "cell_type": "markdown",
- "id": "juvenile-creation",
- "metadata": {},
- "source": [
- "### Results "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 14,
- "id": "pursuant-surrey",
- "metadata": {},
- "outputs": [],
- "source": [
- "#######################################################################\n",
- "### 💻 YOUR WORK GOES HERE TO ANSWER THE SECOND RESEARCH QUESTION 💻 \n",
- "###\n",
- "### Your data analysis may include a statistic and/or a data visualization\n",
- "#######################################################################"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 15,
- "id": "located-night",
- "metadata": {},
- "outputs": [],
- "source": [
- "# 💻 YOU CAN ADD NEW CELLS WITH THE \"+\" BUTTON "
- ]
- },
{
"cell_type": "markdown",
"id": "infectious-symbol",
diff --git a/data/B_D - bad-drivers.csv b/data/B_D - bad-drivers.csv
new file mode 100644
index 0000000..7cbcbb2
--- /dev/null
+++ b/data/B_D - bad-drivers.csv
@@ -0,0 +1,52 @@
+State,number_drivers_fatal_billion_miles,percentage_drivers_fatal_speeding,percentage_drivers_fatal_alcohol_impaired,percentage_drivers_fatal_not_distracted,percentage_drivers_fatal_no_previous_accidents,car_insurance_premiums,region
+Alabama,18.8,39,30,96,80,784.55,Southeast
+Alaska,18.1,41,25,90,94,1053.48,West
+Arizona,18.6,35,28,84,96,899.47,Southeast
+Arkansas,22.4,18,26,94,95,827.34,Southeast
+California,12,35,28,91,89,878.41,West
+Colorado,13.6,37,28,79,95,835.5,West
+Connecticut,10.8,46,36,87,82,1068.73,Northwest
+Delaware,16.2,38,30,87,99,1137.87,Northwest
+District of Columbia,5.9,34,27,100,100,1273.89,Northwest
+Florida,17.9,21,29,92,94,1160.13,Southeast
+Georgia,15.6,19,25,95,93,913.15,Southeast
+Hawaii,17.5,54,41,82,87,861.18,West
+Idaho,15.3,36,29,85,98,641.96,West
+Illinois,12.8,36,34,94,96,803.11,Midwest
+Indiana,14.5,25,29,95,95,710.46,Midwest
+Iowa,15.7,17,25,97,87,649.06,Midwest
+Kansas,17.8,27,24,77,85,780.45,Midwest
+Kentucky,21.4,19,23,78,76,872.51,Southeast
+Louisiana,20.5,35,33,73,98,1281.55,Southeast
+Maine,15.1,38,30,87,84,661.88,Northeast
+Maryland,12.5,34,32,71,99,1048.78,Northeast
+Massachusetts,8.2,23,35,87,80,1011.14,Northeast
+Michigan,14.1,24,28,95,77,1110.61,Midwest
+Minnesota,9.6,23,29,88,88,777.18,Midwest
+Mississippi,17.6,15,31,10,100,896.07,Southeast
+Missouri,16.1,43,34,92,84,790.32,Midwest
+Montana,21.4,39,44,84,85,816.21,West
+Nebraska,14.9,13,35,93,90,732.28,Midwest
+Nevada,14.7,37,32,95,99,1029.87,West
+New Hampshire,11.6,35,30,87,83,746.54,Northeast
+New Jersey,11.2,16,28,86,78,1301.52,Northeast
+New Mexico,18.4,19,27,67,98,869.85,Southeast
+New York,12.3,32,29,88,80,1234.31,Northeast
+North Carolina,16.8,39,31,94,81,708.24,Southeast
+North Dakota,23.9,23,42,99,86,688.75,Midwest
+Ohio,14.1,28,34,99,82,697.73,Midwest
+Oklahoma,19.9,32,29,92,94,881.51,Southeast
+Oregon,12.8,33,26,67,90,804.71,West
+Pennsylvania,18.2,50,31,96,88,905.99,Northeast
+Rhode Island,11.1,34,38,92,79,1148.99,Northeast
+South Carolina,23.9,38,41,96,81,858.97,Southeast
+South Dakota,19.4,31,33,98,86,669.31,Midwest
+Tennessee,19.5,21,29,82,81,767.91,Southeast
+Texas,19.4,40,38,91,87,1004.75,Southeast
+Utah,11.3,43,16,88,96,809.38,West
+Vermont,13.6,30,30,96,95,716.2,Northeast
+Virginia,12.7,19,27,87,88,768.95,Southeast
+Washington,10.6,42,33,82,86,890.03,West
+West Virginia,23.8,34,28,97,87,992.61,Southeast
+Wisconsin,13.8,36,33,39,84,670.31,Midwest
+Wyoming,17.4,42,32,81,90,791.14,West
\ No newline at end of file
diff --git a/data/bad-drivers.csv b/data/bad-drivers.csv
deleted file mode 100644
index d90f8ec..0000000
--- a/data/bad-drivers.csv
+++ /dev/null
@@ -1,52 +0,0 @@
-State,Number of drivers involved in fatal collisions per billion miles,Percentage Of Drivers Involved In Fatal Collisions Who Were Speeding,Percentage Of Drivers Involved In Fatal Collisions Who Were Alcohol-Impaired,Percentage Of Drivers Involved In Fatal Collisions Who Were Not Distracted,Percentage Of Drivers Involved In Fatal Collisions Who Had Not Been Involved In Any Previous Accidents,Car Insurance Premiums ($),Losses incurred by insurance companies for collisions per insured driver ($)
-Alabama,18.8,39,30,96,80,784.55,145.08
-Alaska,18.1,41,25,90,94,1053.48,133.93
-Arizona,18.6,35,28,84,96,899.47,110.35
-Arkansas,22.4,18,26,94,95,827.34,142.39
-California,12,35,28,91,89,878.41,165.63
-Colorado,13.6,37,28,79,95,835.5,139.91
-Connecticut,10.8,46,36,87,82,1068.73,167.02
-Delaware,16.2,38,30,87,99,1137.87,151.48
-District of Columbia,5.9,34,27,100,100,1273.89,136.05
-Florida,17.9,21,29,92,94,1160.13,144.18
-Georgia,15.6,19,25,95,93,913.15,142.8
-Hawaii,17.5,54,41,82,87,861.18,120.92
-Idaho,15.3,36,29,85,98,641.96,82.75
-Illinois,12.8,36,34,94,96,803.11,139.15
-Indiana,14.5,25,29,95,95,710.46,108.92
-Iowa,15.7,17,25,97,87,649.06,114.47
-Kansas,17.8,27,24,77,85,780.45,133.8
-Kentucky,21.4,19,23,78,76,872.51,137.13
-Louisiana,20.5,35,33,73,98,1281.55,194.78
-Maine,15.1,38,30,87,84,661.88,96.57
-Maryland,12.5,34,32,71,99,1048.78,192.7
-Massachusetts,8.2,23,35,87,80,1011.14,135.63
-Michigan,14.1,24,28,95,77,1110.61,152.26
-Minnesota,9.6,23,29,88,88,777.18,133.35
-Mississippi,17.6,15,31,10,100,896.07,155.77
-Missouri,16.1,43,34,92,84,790.32,144.45
-Montana,21.4,39,44,84,85,816.21,85.15
-Nebraska,14.9,13,35,93,90,732.28,114.82
-Nevada,14.7,37,32,95,99,1029.87,138.71
-New Hampshire,11.6,35,30,87,83,746.54,120.21
-New Jersey,11.2,16,28,86,78,1301.52,159.85
-New Mexico,18.4,19,27,67,98,869.85,120.75
-New York,12.3,32,29,88,80,1234.31,150.01
-North Carolina,16.8,39,31,94,81,708.24,127.82
-North Dakota,23.9,23,42,99,86,688.75,109.72
-Ohio,14.1,28,34,99,82,697.73,133.52
-Oklahoma,19.9,32,29,92,94,881.51,178.86
-Oregon,12.8,33,26,67,90,804.71,104.61
-Pennsylvania,18.2,50,31,96,88,905.99,153.86
-Rhode Island,11.1,34,38,92,79,1148.99,148.58
-South Carolina,23.9,38,41,96,81,858.97,116.29
-South Dakota,19.4,31,33,98,86,669.31,96.87
-Tennessee,19.5,21,29,82,81,767.91,155.57
-Texas,19.4,40,38,91,87,1004.75,156.83
-Utah,11.3,43,16,88,96,809.38,109.48
-Vermont,13.6,30,30,96,95,716.2,109.61
-Virginia,12.7,19,27,87,88,768.95,153.72
-Washington,10.6,42,33,82,86,890.03,111.62
-West Virginia,23.8,34,28,97,87,992.61,152.56
-Wisconsin,13.8,36,33,39,84,670.31,106.62
-Wyoming,17.4,42,32,81,90,791.14,122.04
\ No newline at end of file