Skip to content
Permalink
19bdef3106
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
 
 
Cannot retrieve contributors at this time
405 lines (405 sloc) 62.7 KB
{
"cells": [
{
"cell_type": "code",
"execution_count": 19,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd\n",
"import dask.dataframe as d\n",
"import plotly.express as px\n",
"\n"
]
},
{
"cell_type": "code",
"execution_count": 20,
"metadata": {},
"outputs": [],
"source": [
"\n",
"data = d.read_csv(\"trips_by_distance.csv\", assume_missing=True)"
]
},
{
"cell_type": "code",
"execution_count": 21,
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<div><strong>Dask DataFrame Structure:</strong></div>\n",
"<div>\n",
"<style scoped>\n",
" .dataframe tbody tr th:only-of-type {\n",
" vertical-align: middle;\n",
" }\n",
"\n",
" .dataframe tbody tr th {\n",
" vertical-align: top;\n",
" }\n",
"\n",
" .dataframe thead th {\n",
" text-align: right;\n",
" }\n",
"</style>\n",
"<table border=\"1\" class=\"dataframe\">\n",
" <thead>\n",
" <tr style=\"text-align: right;\">\n",
" <th></th>\n",
" <th>Level</th>\n",
" <th>Date</th>\n",
" <th>State FIPS</th>\n",
" <th>State Postal Code</th>\n",
" <th>County FIPS</th>\n",
" <th>County Name</th>\n",
" <th>Population Staying at Home</th>\n",
" <th>Population Not Staying at Home</th>\n",
" <th>Number of Trips</th>\n",
" <th>Number of Trips &lt;1</th>\n",
" <th>Number of Trips 1-3</th>\n",
" <th>Number of Trips 3-5</th>\n",
" <th>Number of Trips 5-10</th>\n",
" <th>Number of Trips 10-25</th>\n",
" <th>Number of Trips 25-50</th>\n",
" <th>Number of Trips 50-100</th>\n",
" <th>Number of Trips 100-250</th>\n",
" <th>Number of Trips 250-500</th>\n",
" <th>Number of Trips &gt;=500</th>\n",
" <th>Row ID</th>\n",
" <th>Week</th>\n",
" <th>Month</th>\n",
" </tr>\n",
" <tr>\n",
" <th>npartitions=2</th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" <th></th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th></th>\n",
" <td>object</td>\n",
" <td>object</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" <td>object</td>\n",
" <td>float64</td>\n",
" <td>float64</td>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" <tr>\n",
" <th></th>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" <td>...</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>\n",
"<div>Dask Name: dropna, 2 graph layers</div>"
],
"text/plain": [
"Dask DataFrame Structure:\n",
" Level Date State FIPS State Postal Code County FIPS County Name Population Staying at Home Population Not Staying at Home Number of Trips Number of Trips <1 Number of Trips 1-3 Number of Trips 3-5 Number of Trips 5-10 Number of Trips 10-25 Number of Trips 25-50 Number of Trips 50-100 Number of Trips 100-250 Number of Trips 250-500 Number of Trips >=500 Row ID Week Month\n",
"npartitions=2 \n",
" object object float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 float64 object float64 float64\n",
" ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n",
" ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...\n",
"Dask Name: dropna, 2 graph layers"
]
},
"execution_count": 21,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.dropna()"
]
},
{
"cell_type": "code",
"execution_count": 22,
"metadata": {},
"outputs": [
{
"ename": "MemoryError",
"evalue": "",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mMemoryError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[22], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[43mdata\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mDate\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mnunique\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcompute\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 2\u001b[0m people_staying \u001b[38;5;241m=\u001b[39m data\u001b[38;5;241m.\u001b[39mgroupby(by \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDate\u001b[39m\u001b[38;5;124m'\u001b[39m)[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mPopulation Staying at Home\u001b[39m\u001b[38;5;124m'\u001b[39m]\u001b[38;5;241m.\u001b[39mmean()\u001b[38;5;241m.\u001b[39mcompute()\n\u001b[0;32m 3\u001b[0m \u001b[38;5;28mprint\u001b[39m(people_staying,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m People staying\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\dask\\base.py:375\u001b[0m, in \u001b[0;36mDaskMethodsMixin.compute\u001b[1;34m(self, **kwargs)\u001b[0m\n\u001b[0;32m 351\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mcompute\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m 352\u001b[0m \u001b[38;5;250m \u001b[39m\u001b[38;5;124;03m\"\"\"Compute this dask collection\u001b[39;00m\n\u001b[0;32m 353\u001b[0m \n\u001b[0;32m 354\u001b[0m \u001b[38;5;124;03m This turns a lazy Dask collection into its in-memory equivalent.\u001b[39;00m\n\u001b[1;32m (...)\u001b[0m\n\u001b[0;32m 373\u001b[0m \u001b[38;5;124;03m dask.compute\u001b[39;00m\n\u001b[0;32m 374\u001b[0m \u001b[38;5;124;03m \"\"\"\u001b[39;00m\n\u001b[1;32m--> 375\u001b[0m (result,) \u001b[38;5;241m=\u001b[39m \u001b[43mcompute\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mtraverse\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\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[0;32m 376\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m result\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\dask\\base.py:661\u001b[0m, in \u001b[0;36mcompute\u001b[1;34m(traverse, optimize_graph, scheduler, get, *args, **kwargs)\u001b[0m\n\u001b[0;32m 658\u001b[0m postcomputes\u001b[38;5;241m.\u001b[39mappend(x\u001b[38;5;241m.\u001b[39m__dask_postcompute__())\n\u001b[0;32m 660\u001b[0m \u001b[38;5;28;01mwith\u001b[39;00m shorten_traceback():\n\u001b[1;32m--> 661\u001b[0m results \u001b[38;5;241m=\u001b[39m \u001b[43mschedule\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdsk\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkeys\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[0;32m 663\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m repack([f(r, \u001b[38;5;241m*\u001b[39ma) \u001b[38;5;28;01mfor\u001b[39;00m r, (f, a) \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mzip\u001b[39m(results, postcomputes)])\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\dask\\bytes\\core.py:194\u001b[0m, in \u001b[0;36mread_block_from_file\u001b[1;34m(lazy_file, off, bs, delimiter)\u001b[0m\n\u001b[0;32m 192\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m off \u001b[38;5;241m==\u001b[39m \u001b[38;5;241m0\u001b[39m \u001b[38;5;129;01mand\u001b[39;00m bs \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 193\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m f\u001b[38;5;241m.\u001b[39mread()\n\u001b[1;32m--> 194\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mread_block\u001b[49m\u001b[43m(\u001b[49m\u001b[43mf\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43moff\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mdelimiter\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\fsspec\\utils.py:302\u001b[0m, in \u001b[0;36mread_block\u001b[1;34m(f, offset, length, delimiter, split_before)\u001b[0m\n\u001b[0;32m 300\u001b[0m \u001b[38;5;66;03m# TODO: allow length to be None and read to the end of the file?\u001b[39;00m\n\u001b[0;32m 301\u001b[0m \u001b[38;5;28;01massert\u001b[39;00m length \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--> 302\u001b[0m b \u001b[38;5;241m=\u001b[39m \u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\u001b[49m\u001b[43m(\u001b[49m\u001b[43mlength\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 303\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m b\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\fsspec\\implementations\\local.py:366\u001b[0m, in \u001b[0;36mLocalFileOpener.read\u001b[1;34m(self, *args, **kwargs)\u001b[0m\n\u001b[0;32m 365\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mread\u001b[39m(\u001b[38;5;28mself\u001b[39m, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m--> 366\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mf\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mread\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;31mMemoryError\u001b[0m: "
]
}
],
"source": [
"data['Date'].nunique().compute()\n",
"people_staying = data.groupby(by = 'Date')['Population Staying at Home'].mean().compute()\n",
"print(people_staying,\" People staying\")\n",
"\n",
"\n",
"average_distance_per_trip = {\n",
" \"Number of Trips <1 \": 1,\n",
" \"Number of Trips 1-25 \": 13, \n",
" \"Number of Trips 1-3 \": 2,\n",
" \"Number of Trips 10-25 \": 17.5,\n",
" \"Number of Trips 100-250 \": 175,\n",
" \"Number of Trips 100+ \": 101, \n",
" \"Number of Trips 25-100 \": 62.5, \n",
" \"Number of Trips 25-50 \": 37.5,\n",
" \"Number of Trips 250-500 \": 375,\n",
" \"Number of Trips 3-5 \": 4,\n",
" \"Number of Trips 5-10\": 7.5,\n",
" \"Number of Trips 50-100\": 75, \n",
" \"Number of Trips 500+\": 501\n",
"}\n",
"\n",
"total_distance_traveled = 0\n",
"total_distance_traveled_list = []\n",
"\n",
"for rows in data['Number of Trips']:\n",
" total_distance_traveled = 0\n",
" row_count= 0\n",
" for column_name in data.columns[6:]: # Adjusted column range to exclude columns until the 6th index\n",
" if column_name in average_distance_per_trip:\n",
" # Perform multiplication for the first item in each column and add to the total distance traveled\n",
" total_distance_traveled = total_distance_traveled + (data[column_name] * average_distance_per_trip[column_name]).compute()\n",
" total_distance_traveled = total_distance_traveled/rows\n",
" total_distance_traveled_list.append(total_distance_traveled)\n",
" row_count = row_count + 1\n",
" \n",
"total = sum(total_distance_traveled_list)\n",
"\n",
"print(\"Total distance traveled by people who don't stay at home:\", total, \"miles\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "KeyError",
"evalue": "'Trips 50-100 Miles'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\pandas\\core\\indexes\\base.py:3802\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3801\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m-> 3802\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_engine\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mcasted_key\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3803\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\pandas\\_libs\\index.pyx:138\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\pandas\\_libs\\index.pyx:165\u001b[0m, in \u001b[0;36mpandas._libs.index.IndexEngine.get_loc\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:5745\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"File \u001b[1;32mpandas\\_libs\\hashtable_class_helper.pxi:5753\u001b[0m, in \u001b[0;36mpandas._libs.hashtable.PyObjectHashTable.get_item\u001b[1;34m()\u001b[0m\n",
"\u001b[1;31mKeyError\u001b[0m: 'Trips 50-100 Miles'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mKeyError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[6], line 2\u001b[0m\n\u001b[0;32m 1\u001b[0m question2 \u001b[38;5;241m=\u001b[39m pd\u001b[38;5;241m.\u001b[39mread_csv(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtrips_by_distance.csv\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m----> 2\u001b[0m trips_10_25 \u001b[38;5;241m=\u001b[39m \u001b[43mquestion2\u001b[49m\u001b[43m[\u001b[49m\u001b[43mquestion2\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mNumber of Trips 10-25\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m>\u001b[39;49m\u001b[43m \u001b[49m\u001b[38;5;241;43m10000000\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mTrips 50-100 Miles\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m]\u001b[49m\n\u001b[0;32m 3\u001b[0m trips_10_25_ \u001b[38;5;241m=\u001b[39m question2\u001b[38;5;241m.\u001b[39mloc[question2[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mNumber of 10-25\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m10000000\u001b[39m, \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mDate\u001b[39m\u001b[38;5;124m'\u001b[39m]\n\u001b[0;32m 5\u001b[0m trips_50_100 \u001b[38;5;241m=\u001b[39m question2[question2[\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mNumber of Trips 50-100\u001b[39m\u001b[38;5;124m'\u001b[39m] \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m10000000\u001b[39m]\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\pandas\\core\\frame.py:3807\u001b[0m, in \u001b[0;36mDataFrame.__getitem__\u001b[1;34m(self, key)\u001b[0m\n\u001b[0;32m 3805\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcolumns\u001b[38;5;241m.\u001b[39mnlevels \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m1\u001b[39m:\n\u001b[0;32m 3806\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_getitem_multilevel(key)\n\u001b[1;32m-> 3807\u001b[0m indexer \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mcolumns\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mget_loc\u001b[49m\u001b[43m(\u001b[49m\u001b[43mkey\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 3808\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m is_integer(indexer):\n\u001b[0;32m 3809\u001b[0m indexer \u001b[38;5;241m=\u001b[39m [indexer]\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\pandas\\core\\indexes\\base.py:3804\u001b[0m, in \u001b[0;36mIndex.get_loc\u001b[1;34m(self, key, method, tolerance)\u001b[0m\n\u001b[0;32m 3802\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_engine\u001b[38;5;241m.\u001b[39mget_loc(casted_key)\n\u001b[0;32m 3803\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m err:\n\u001b[1;32m-> 3804\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m(key) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01merr\u001b[39;00m\n\u001b[0;32m 3805\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mTypeError\u001b[39;00m:\n\u001b[0;32m 3806\u001b[0m \u001b[38;5;66;03m# If we have a listlike key, _check_indexing_error will raise\u001b[39;00m\n\u001b[0;32m 3807\u001b[0m \u001b[38;5;66;03m# InvalidIndexError. Otherwise we fall through and re-raise\u001b[39;00m\n\u001b[0;32m 3808\u001b[0m \u001b[38;5;66;03m# the TypeError.\u001b[39;00m\n\u001b[0;32m 3809\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_check_indexing_error(key)\n",
"\u001b[1;31mKeyError\u001b[0m: 'Trips 50-100 Miles'"
]
}
],
"source": [
"question2 = pd.read_csv(\"trips_by_distance.csv\")\n",
"trips_10_25 = question2[question2['Number of Trips 10-25'] > 10000000]['Trips 50-100 Miles']\n",
"trips_10_25_ = question2.loc[question2['Number of 10-25'] > 10000000, 'Date']\n",
"\n",
"trips_50_100 = question2[question2['Number of Trips 50-100'] > 10000000]\n",
"trips_50_100_ = question2.loc[question2['Number of Trips 50-100'] > 10000000, 'Date']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": []
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "TypeError",
"evalue": "unhashable type: 'numpy.ndarray'",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mTypeError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[39], line 3\u001b[0m\n\u001b[0;32m 1\u001b[0m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;21;01mmatplotlib\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mpyplot\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m \u001b[38;5;21;01mplt\u001b[39;00m\n\u001b[0;32m 2\u001b[0m plt\u001b[38;5;241m.\u001b[39mbar( trips_10_25_,trips_10_25,color\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m'\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124medge\u001b[39m\u001b[38;5;124m'\u001b[39m, label\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTrips 10-25 Miles\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[1;32m----> 3\u001b[0m \u001b[43mplt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbar\u001b[49m\u001b[43m(\u001b[49m\u001b[43m \u001b[49m\u001b[43mtrips_50_100_\u001b[49m\u001b[43m,\u001b[49m\u001b[43mtrips_50_100\u001b[49m\u001b[43m,\u001b[49m\u001b[43mcolor\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mb\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mcenter\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mlabel\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43mTrips 50-100 Miles\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 4\u001b[0m plt\u001b[38;5;241m.\u001b[39mtitle(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mTrips 10-25\u001b[39m\u001b[38;5;124m'\u001b[39m)\n\u001b[0;32m 5\u001b[0m plt\u001b[38;5;241m.\u001b[39mshow()\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\pyplot.py:2439\u001b[0m, in \u001b[0;36mbar\u001b[1;34m(x, height, width, bottom, align, data, **kwargs)\u001b[0m\n\u001b[0;32m 2435\u001b[0m \u001b[38;5;129m@_copy_docstring_and_deprecators\u001b[39m(Axes\u001b[38;5;241m.\u001b[39mbar)\n\u001b[0;32m 2436\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mbar\u001b[39m(\n\u001b[0;32m 2437\u001b[0m x, height, width\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m0.8\u001b[39m, bottom\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m, align\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mcenter\u001b[39m\u001b[38;5;124m'\u001b[39m,\n\u001b[0;32m 2438\u001b[0m data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[1;32m-> 2439\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mgca\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mbar\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2440\u001b[0m \u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mheight\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mwidth\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mwidth\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mbottom\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbottom\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43malign\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43malign\u001b[49m\u001b[43m,\u001b[49m\n\u001b[0;32m 2441\u001b[0m \u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43m{\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdata\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m:\u001b[49m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m}\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mif\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43mdata\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mis\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;129;43;01mnot\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[38;5;28;43;01melse\u001b[39;49;00m\u001b[43m \u001b[49m\u001b[43m{\u001b[49m\u001b[43m}\u001b[49m\u001b[43m)\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[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\__init__.py:1459\u001b[0m, in \u001b[0;36m_preprocess_data.<locals>.inner\u001b[1;34m(ax, data, *args, **kwargs)\u001b[0m\n\u001b[0;32m 1456\u001b[0m \u001b[38;5;129m@functools\u001b[39m\u001b[38;5;241m.\u001b[39mwraps(func)\n\u001b[0;32m 1457\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21minner\u001b[39m(ax, \u001b[38;5;241m*\u001b[39margs, data\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mNone\u001b[39;00m, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs):\n\u001b[0;32m 1458\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m-> 1459\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[43max\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;28;43mmap\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43msanitize_sequence\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[43m)\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[0;32m 1461\u001b[0m bound \u001b[38;5;241m=\u001b[39m new_sig\u001b[38;5;241m.\u001b[39mbind(ax, \u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[0;32m 1462\u001b[0m auto_label \u001b[38;5;241m=\u001b[39m (bound\u001b[38;5;241m.\u001b[39marguments\u001b[38;5;241m.\u001b[39mget(label_namer)\n\u001b[0;32m 1463\u001b[0m \u001b[38;5;129;01mor\u001b[39;00m bound\u001b[38;5;241m.\u001b[39mkwargs\u001b[38;5;241m.\u001b[39mget(label_namer))\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\axes\\_axes.py:2392\u001b[0m, in \u001b[0;36mAxes.bar\u001b[1;34m(self, x, height, width, bottom, align, **kwargs)\u001b[0m\n\u001b[0;32m 2389\u001b[0m x \u001b[38;5;241m=\u001b[39m \u001b[38;5;241m0\u001b[39m\n\u001b[0;32m 2391\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m orientation \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mvertical\u001b[39m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m-> 2392\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43m_process_unit_info\u001b[49m\u001b[43m(\u001b[49m\n\u001b[0;32m 2393\u001b[0m \u001b[43m \u001b[49m\u001b[43m[\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mx\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mx\u001b[49m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43my\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mheight\u001b[49m\u001b[43m)\u001b[49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mkwargs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mconvert\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43;01mFalse\u001b[39;49;00m\u001b[43m)\u001b[49m\n\u001b[0;32m 2394\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m log:\n\u001b[0;32m 2395\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_yscale(\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mlog\u001b[39m\u001b[38;5;124m'\u001b[39m, nonpositive\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mclip\u001b[39m\u001b[38;5;124m'\u001b[39m)\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\axes\\_base.py:2549\u001b[0m, in \u001b[0;36m_AxesBase._process_unit_info\u001b[1;34m(self, datasets, kwargs, convert)\u001b[0m\n\u001b[0;32m 2547\u001b[0m \u001b[38;5;66;03m# Update from data if axis is already set but no unit is set yet.\u001b[39;00m\n\u001b[0;32m 2548\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m data \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m axis\u001b[38;5;241m.\u001b[39mhave_units():\n\u001b[1;32m-> 2549\u001b[0m \u001b[43maxis\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n\u001b[0;32m 2550\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m axis_name, axis \u001b[38;5;129;01min\u001b[39;00m axis_map\u001b[38;5;241m.\u001b[39mitems():\n\u001b[0;32m 2551\u001b[0m \u001b[38;5;66;03m# Return if no axis is set.\u001b[39;00m\n\u001b[0;32m 2552\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\axis.py:1675\u001b[0m, in \u001b[0;36mAxis.update_units\u001b[1;34m(self, data)\u001b[0m\n\u001b[0;32m 1673\u001b[0m neednew \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconverter \u001b[38;5;241m!=\u001b[39m converter\n\u001b[0;32m 1674\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mconverter \u001b[38;5;241m=\u001b[39m converter\n\u001b[1;32m-> 1675\u001b[0m default \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mconverter\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mdefault_units\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m)\u001b[49m\n\u001b[0;32m 1676\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m default \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;129;01mand\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39munits \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[0;32m 1677\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mset_units(default)\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\category.py:105\u001b[0m, in \u001b[0;36mStrCategoryConverter.default_units\u001b[1;34m(data, axis)\u001b[0m\n\u001b[0;32m 103\u001b[0m \u001b[38;5;66;03m# the conversion call stack is default_units -> axis_info -> convert\u001b[39;00m\n\u001b[0;32m 104\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m axis\u001b[38;5;241m.\u001b[39munits \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m:\n\u001b[1;32m--> 105\u001b[0m axis\u001b[38;5;241m.\u001b[39mset_units(\u001b[43mUnitData\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m)\n\u001b[0;32m 106\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 107\u001b[0m axis\u001b[38;5;241m.\u001b[39munits\u001b[38;5;241m.\u001b[39mupdate(data)\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\category.py:181\u001b[0m, in \u001b[0;36mUnitData.__init__\u001b[1;34m(self, data)\u001b[0m\n\u001b[0;32m 179\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_counter \u001b[38;5;241m=\u001b[39m itertools\u001b[38;5;241m.\u001b[39mcount()\n\u001b[0;32m 180\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m data \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--> 181\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mupdate\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\matplotlib\\category.py:214\u001b[0m, in \u001b[0;36mUnitData.update\u001b[1;34m(self, data)\u001b[0m\n\u001b[0;32m 212\u001b[0m \u001b[38;5;66;03m# check if convertible to number:\u001b[39;00m\n\u001b[0;32m 213\u001b[0m convertible \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m\n\u001b[1;32m--> 214\u001b[0m \u001b[38;5;28;01mfor\u001b[39;00m val \u001b[38;5;129;01min\u001b[39;00m \u001b[43mOrderedDict\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mfromkeys\u001b[49m\u001b[43m(\u001b[49m\u001b[43mdata\u001b[49m\u001b[43m)\u001b[49m:\n\u001b[0;32m 215\u001b[0m \u001b[38;5;66;03m# OrderedDict just iterates over unique values in data.\u001b[39;00m\n\u001b[0;32m 216\u001b[0m _api\u001b[38;5;241m.\u001b[39mcheck_isinstance((\u001b[38;5;28mstr\u001b[39m, \u001b[38;5;28mbytes\u001b[39m), value\u001b[38;5;241m=\u001b[39mval)\n\u001b[0;32m 217\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m convertible:\n\u001b[0;32m 218\u001b[0m \u001b[38;5;66;03m# this will only be called so long as convertible is True.\u001b[39;00m\n",
"\u001b[1;31mTypeError\u001b[0m: unhashable type: 'numpy.ndarray'"
]
},
{
"data": {
"image/png": "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WqTXXnut2m3u3r1bQ4cO1aFDh9SsWTP17NlTq1evVrNmzTztHgAAqIccxlz6d1a5XC6FhISoqKjo/Lw9xA11FajDSdSiAnWoQB1OohYVqEOteHL+5scPAQCA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7RFYAACA7XkcWFauXKkBAwYoMjJSDodDS5cuPWP7rKwsORyOKlN+fr5bu8mTJ6tNmzby9/dXQkKC1q5d62nXAABAPeVxYCkpKVGXLl00efJkj9bbunWr9u3bZ03Nmze3ls2fP19paWkaP368NmzYoC5duig5OVn79+/3tHsAAKAe8vF0hZSUFKWkpHj8RM2bN1ejRo2qXfbKK6/o3nvv1YgRIyRJU6dO1YcffqgZM2boT3/6k8fPBQAA6pcLdg9LXFycIiIidMMNN+iLL76w5h87dkzr169XUlLSyU55eSkpKUnZ2dnVbqu0tFQul8ttAgAA9dd5DywRERGaOnWqFi1apEWLFikqKkrXXnutNmzYIEk6ePCgysrKFBYW5rZeWFhYlftcKmVkZCgkJMSaoqKizvcwAADAReTxW0KeiomJUUxMjPW4R48e+uGHH/TXv/5Vb7/9dp22mZ6errS0NOuxy+UitAAAUI+d98BSnW7dumnVqlWSpNDQUHl7e6ugoMCtTUFBgcLDw6td3+l0yul0nvd+AgAAe7go38OSk5OjiIgISZKfn5/i4+OVmZlpLS8vL1dmZqYSExMvRvcAAIDNeHyFpbi4WNu3b7ce5+bmKicnR02aNFGrVq2Unp6uPXv2aM6cOZKkV199VdHR0briiit09OhRTZs2TStWrNAnn3xibSMtLU3Dhw/XVVddpW7duunVV19VSUmJ9akhAADw2+ZxYFm3bp369OljPa68l2T48OGaNWuW9u3bp7y8PGv5sWPH9Oijj2rPnj0KDAxU586d9e9//9ttG4MHD9aBAwc0btw45efnKy4uTsuWLatyIy4AAPhtchhjzMXuxK/lcrkUEhKioqIiBQcHn/sncDjO/TYvtrq87NThJGpRgTpUoA4nUYsK1KFWPDl/81tCAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9ggsAADA9jwOLCtXrtSAAQMUGRkph8OhpUuXnrH94sWLdcMNN6hZs2YKDg5WYmKi/vWvf7m1efrpp+VwONymTp06edo1AABQT3kcWEpKStSlSxdNnjy5Vu1XrlypG264QR999JHWr1+vPn36aMCAAdq4caNbuyuuuEL79u2zplWrVnnaNQAAUE/5eLpCSkqKUlJSat3+1VdfdXv8v//7v3rvvff0z3/+U127dj3ZER8fhYeHe9odAADwG3DB72EpLy/X4cOH1aRJE7f527ZtU2RkpNq2bathw4YpLy+vxm2UlpbK5XK5TQAAoP664IHlL3/5i4qLi3XHHXdY8xISEjRr1iwtW7ZMU6ZMUW5urnr16qXDhw9Xu42MjAyFhIRYU1RU1IXqPgAAuAgcxhhT55UdDi1ZskSDBg2qVft3331X9957r9577z0lJSXV2K6wsFCtW7fWK6+8opEjR1ZZXlpaqtLSUuuxy+VSVFSUioqKFBwc7PE4zsrhOPfbvNjq8rJTh5OoRQXqUIE6nEQtKlCHWnG5XAoJCanV+dvje1jqat68ebrnnnu0cOHCM4YVSWrUqJE6duyo7du3V7vc6XTK6XSej24CAAAbuiBvCc2dO1cjRozQ3Llz1b9//7O2Ly4u1g8//KCIiIgL0DsAAGB3Hl9hKS4udrvykZubq5ycHDVp0kStWrVSenq69uzZozlz5kiqeBto+PDheu2115SQkKD8/HxJUkBAgEJCQiRJY8eO1YABA9S6dWvt3btX48ePl7e3t4YOHXouxggAAC5xHl9hWbdunbp27Wp9JDktLU1du3bVuHHjJEn79u1z+4TPm2++qRMnTmjUqFGKiIiwpocffthqs3v3bg0dOlQxMTG644471LRpU61evVrNmjX7teMDAAD1wK+66dYuPLlpp064eaoCdTiJWlSgDhWow0nUogJ1qBVPzt/8lhAAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9AgsAALA9jwPLypUrNWDAAEVGRsrhcGjp0qVnXScrK0u/+93v5HQ61b59e82aNatKm8mTJ6tNmzby9/dXQkKC1q5d62nXAABAPeVxYCkpKVGXLl00efLkWrXPzc1V//791adPH+Xk5GjMmDG655579K9//ctqM3/+fKWlpWn8+PHasGGDunTpouTkZO3fv9/T7gEAgHrIYYwxdV7Z4dCSJUs0aNCgGts88cQT+vDDD7Vp0yZr3pAhQ1RYWKhly5ZJkhISEnT11Vfr9ddflySVl5crKipKo0eP1p/+9Kez9sPlcikkJERFRUUKDg6u63Bq5nCc+21ebHV52anDSdSiAnWoQB1OohYVqEOteHL+Pu/3sGRnZyspKcltXnJysrKzsyVJx44d0/r1693aeHl5KSkpyWpzutLSUrlcLrcJAADUX+c9sOTn5yssLMxtXlhYmFwul3755RcdPHhQZWVl1bbJz8+vdpsZGRkKCQmxpqioqPPWfwAAcPFdkp8SSk9PV1FRkTXt2rXrYncJAACcRz7n+wnCw8NVUFDgNq+goEDBwcEKCAiQt7e3vL29q20THh5e7TadTqecTud56zMAALCX836FJTExUZmZmW7zli9frsTEREmSn5+f4uPj3dqUl5crMzPTagMAAH7bPA4sxcXFysnJUU5OjqSKjy3n5OQoLy9PUsXbNampqVb7+++/Xz/++KMef/xxbdmyRW+88YYWLFigRx55xGqTlpamt956S7Nnz9bmzZv1wAMPqKSkRCNGjPiVwwMAAPWC8dCnn35qJFWZhg8fbowxZvjw4aZ3795V1omLizN+fn6mbdu2ZubMmVW2+7e//c20atXK+Pn5mW7dupnVq1fXuk9FRUVGkikqKvJ0OLVT8WGu+jVRh7rXgVpQ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w6H9+/e7jen666+Xr6+vGjRooJiYGF122WW23B+kuh8b99xzj5xOpxwOh3x9fdWrVy99/fXXVcYUGBgoLy8vjRw5Uk8//bSuvvrqerNPSFJmZqbatm1r1S8yMlJffvlllTENGjRI3t7eCgoK0pVXXqm4uDhb1KG688STTz6pO++8s8r+eOq4q3vuyZMnq02bNvL391dCQoLeeecd9erVS/7+/oqKitJzzz1X7ZgmTJigP/zhD/rpp580evRoxcTEKCAgQK1atdJDDz1k/dBupby8PPXv31+BgYFq3ry5HnvsMZ04ccJavm/fPt15553q2LGjvLy8NGbMmCp1OX78uJ555hm1a9dO/v7+6tKli5YtW1ZtDU/1zTffuI3pxRdfPOs6tXktzzami+q8/F70aZ577jnTtGlT88EHH5jc3FyzcOFCExQUZF577TW3docOHTK+vr4mPz/fbf7AgQNNSkqKkWR+/vnnKtu/+eabzQsvvGAKCwtNUlKSmT9/vtmyZYvJzs423bp1M/Hx8W7t+/XrZ7p06WJWr15tPv/8c9O+fXszdOhQa3lxcbG5//77zZtvvmmSk5PNwIEDqzznG2+8YRo2bGjmzZtnfvjhBzN37lwTFBRk3n///RrrcOLECdO8eXPj6+trJk2aZGbOnGkaNmxo/Pz8zliL559/3kgyo0ePNpmZmaZv374mKirKrRaVY+rdu7e5//77TXR0tAkLC7NtLSZOnGi8vb1NXFyc+fDDD82TTz5pHA6HSUpKqrEOxhjTv39/43A4zCOPPGI++OAD07t3b9O8eXPzyy+/uI0pNDTU3HLLLebzzz83gYGBJiEhwWzatMnk5OSY3//+96ZVq1amuLjYWuf+++83UVFRJjMz06xbt850797d9OjRw60vo0ePNq+//rq56667TJcuXaqM6aOPPjI+Pj5mypQp5ocffjAffPCBiYiIMH/7299qrMNzzz1nfH19TXR0tFm8eLF55plnjMPhML/73e9qrMORI0fM1KlTja+vr/nrX/9qsrKyTMuWLY23t7cpKChwG1NAQIC59957TVZWlgkJCTEdO3a05f5Q12NjwoQJxuFwmOuuu86899575tprrzWBgYEmLCzMHDt2zG1MQ4YMMYMGDTLt27c34eHhZubMmfVmn8jJyTE+Pj7G29vbZGRkmFmzZplGjRoZp9NZZZ8ICgoyN910k1m3bp0JCQkx7du3t0UdqjtPeHt7m8jISLf98ZZbbnH7m3D6c8+bN8/4+fmZGTNmmO+++84MHz7cOBwOc+utt5pNmzaZuXPnGh8fH9O4ceMqY+ratauZP3+++fbbb80tt9xi3n//fbN9+3aTmZlpOnToYG699VarvydOnDBXXnmlSUpKMhs3bjQfffSRCQ0NNenp6Vab3Nxc89BDD5nZs2ebuLg48/DDD1epzeOPP24iIyPNhx9+aH744QfzxhtvGH9/f7Nhw4Ya95GioiITFhZmhg0bZo0pICDA/P3vf69xndq8lrUZ08V0QQJL//79zX//93+7zbvlllvMsGHD3ObNmTPHJCQkuM174403TO/evU1mZma1geWXX34xDRo0MJs3b672udeuXWskmZ07dxpjjPn++++NJPPVV19ZbT7++GPjcDjMnj17qqw/fPjwav8oJyYmmrFjx7rNS0tLM9dcc021/TCm4qCV5HYCmDJlivHx8XGbZ8zJWpSXl5vw8HAjySxZssQYY0xhYaFxOp1m7ty5bmNatWqVVYvqxmSnWlx99dVGkls4jYuLM76+vqa0tLRKHYyp+AMtydx3333W8ppq0bJlS/Pxxx9XO6b9+/cbSeazzz6ztuHr62sWLlxobXfz5s1GksnOzq7S9/Hjx1f7R3no0KHmtttuc5s3adIk07JlS1NeXl5tHXr37l3lNbjmmmuMJLfX4PRjo1u3bmbUqFHWeHx9fU2jRo1MRkaGNSYfHx/jdDqtY+P0Mdlpf6jrsdG0aVMjyeTl5Vnj9vX1NZLMtm3b3MbUrl078/HHH1c7pkt9n0hPTzcNGjSw9gljjFm6dKmRZJ5++mm3MYWFhVnHxuljuph1OP08Ufna9evXz5r38ccfG0mma9euNT73qceGMca8/vrrxuFwmIkTJ1pj8vLyMpGRkVXG5Ovra4qKiqps2xhjFixYYPz8/Mzx48eNMRX7rJeXl9vfsClTppjg4GC3v2GVevfuXW1giYiIMK+//rrbvOrOj6d64403TOPGjd2e54knnjAxMTE1rlOb19LTMV1oF+QtoR49eigzM1P/+c9/JElff/21Vq1apZSUFLd277//vgYOHGg9/v777/XMM89ozpw5bt+ee6rMzEy1aNFCnTp1qnZ5UVGRdXlZkrKzs623CSpVvn2wZs2aWo+ptLS0yjfxBgQEaO3atdW+rVH53OHh4fryyy+tWrRq1UonTpzQFVdcIUnasWOHHA6Hpk+froEDByo3N1f5+fmSpFGjRik0NFQ33HCDWrdubV3urRxTYWGhVYvqxmSnWgQFBcnX19e6xPr1119r165dOn78uL777jurFqmpqYqNjZUkvfPOO5Kkli1b6rLLLlPLli117733qkuXLsrOzrbG1LBhQxUVFem6666rdkyVz9mkSRNJ0vr163X8+HElJSVZ/evUqZNatWplbffX1GH37t3auXNntetU/sJ45Q+kff3119q2bZscDofba5CamqqWLVtKko4dO6b169db/Z0zZ44CAwP1+9//3urv+vXrdeLECUVFRVnHxuljstP+UNdj49ChQ2rUqJGmT5+uY8eOyc/PT82bN1fjxo3Vpk0ba0wBAQHav3+/rrvuuhqPDenS3SeOHDmikpISt/42aNBAkvTJJ5+4jenIkSPWsVHdPnGx6nD6eWLBggVyOBz6wx/+YK1T2Y/LL7/cmudwODRr1ixJFW8Zn3psSNKaNWvUsmVLffXVV9aYysvLtXfvXv3888/WmBo3bqy2bdvW+GOFRUVFCg4Olo9PxRfEZ2dnKzY21vqWd0lKTk6Wy+Wy/ob9mtqsWrWqxnWys7P1X//1X/Lz83N77q1bt1pjysrKksPh0I4dO6xxn+21PFdjOl8uSGD505/+pCFDhqhTp07y9fVV165dNWbMGLd7D0pLS7Vs2TLddNNN1uOhQ4fqpZdeUqtWrWrc9nvvvWetc7qjR4/qiSee0NChQ62dMD8/X82bN3dr5+PjoyZNmljBoDaSk5M1bdo0rV+/XsYYrVu3TtOmTdPx48d18ODBatfJz89XbGysWy1uvPFGSdLvfvc7SZKvr686dOigr776SjfddJPVp8cee0wLFizQ8uXLdeutt2r79u36/PPP3cZ0ai1OH5PdatGuXTsrXFXuE6NHj7b6JVX8sKbD4dD1118vqSLAShX3LL366qv6v//7P/3000/avHmz9uzZY63r5+en5ORk62A+dUzl5eUaM2aMrrnmGuvnISrXOf0Xv8PCwjyuw+LFi5WZmany8nL95z//0csvvyyp4r3s6nTt2lWNGjWqcmyEhoZaz11aWiqHw6FevXpJkg4ePKiysjLrj8r06dN15513qkWLFtY6+fn58vLyqnKPSeWY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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"import matplotlib.pyplot as plt\n",
"plt.bar( trips_10_25_,trips_10_25,color='r', align='edge', label='Trips 10-25 Miles')\n",
"plt.bar( trips_50_100_,trips_50_100,color='b', align='center', label='Trips 50-100 Miles')\n",
"plt.title('Trips 10-25')\n",
"plt.show()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [
{
"ename": "ImportError",
"evalue": "dask.distributed is not installed.\n\nPlease either conda or pip install distributed:\n\n conda install dask distributed # either conda install\n python -m pip install \"dask[distributed]\" --upgrade # or pip install",
"output_type": "error",
"traceback": [
"\u001b[1;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[1;31mModuleNotFoundError\u001b[0m Traceback (most recent call last)",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\dask\\distributed.py:13\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[38;5;28;01mtry\u001b[39;00m:\n\u001b[1;32m---> 13\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdistributed\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m \u001b[38;5;241m*\u001b[39m\n\u001b[0;32m 14\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mImportError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n",
"\u001b[1;31mModuleNotFoundError\u001b[0m: No module named 'distributed'",
"\nThe above exception was the direct cause of the following exception:\n",
"\u001b[1;31mImportError\u001b[0m Traceback (most recent call last)",
"Cell \u001b[1;32mIn[44], line 1\u001b[0m\n\u001b[1;32m----> 1\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01mdask\u001b[39;00m\u001b[38;5;21;01m.\u001b[39;00m\u001b[38;5;21;01mdistributed\u001b[39;00m \u001b[38;5;28;01mimport\u001b[39;00m progress\n\u001b[0;32m 2\u001b[0m n_processors \u001b[38;5;241m=\u001b[39m [\u001b[38;5;241m10\u001b[39m, \u001b[38;5;241m20\u001b[39m]\n\u001b[0;32m 3\u001b[0m n_processors_time \u001b[38;5;241m=\u001b[39m {}\n",
"File \u001b[1;32m~\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.11_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python311\\site-packages\\dask\\distributed.py:16\u001b[0m\n\u001b[0;32m 14\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mImportError\u001b[39;00m \u001b[38;5;28;01mas\u001b[39;00m e:\n\u001b[0;32m 15\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m e\u001b[38;5;241m.\u001b[39mmsg \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mNo module named \u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124mdistributed\u001b[39m\u001b[38;5;124m'\u001b[39m\u001b[38;5;124m\"\u001b[39m:\n\u001b[1;32m---> 16\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mImportError\u001b[39;00m(_import_error_message) \u001b[38;5;28;01mfrom\u001b[39;00m \u001b[38;5;21;01me\u001b[39;00m\n\u001b[0;32m 17\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m 18\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m\n",
"\u001b[1;31mImportError\u001b[0m: dask.distributed is not installed.\n\nPlease either conda or pip install distributed:\n\n conda install dask distributed # either conda install\n python -m pip install \"dask[distributed]\" --upgrade # or pip install"
]
}
],
"source": [
"from dask.distributed import progress\n",
"n_processors = [10, 20]\n",
"n_processors_time = {}"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}