Skip to content
Permalink
main
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
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"id": "9a3d1d4d-54e0-4725-933b-8337450f2df3",
"metadata": {
"id": "9a3d1d4d-54e0-4725-933b-8337450f2df3"
},
"outputs": [],
"source": [
"import pandas as pd\n",
"import torch.nn as nn\n",
"import torch\n",
"from datetime import datetime, timedelta\n",
"import numpy as np"
]
},
{
"cell_type": "markdown",
"id": "cc2e45cc-2981-4ff4-bbdd-b640b3bcbc37",
"metadata": {
"id": "cc2e45cc-2981-4ff4-bbdd-b640b3bcbc37"
},
"source": [
"## data processing"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "c421468f-c578-4583-8747-a30b5e2e8bf6",
"metadata": {
"id": "c421468f-c578-4583-8747-a30b5e2e8bf6"
},
"outputs": [],
"source": [
"!pwd"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "b298662f-dadb-451e-9ee7-8c6f2989d3b9",
"metadata": {
"id": "b298662f-dadb-451e-9ee7-8c6f2989d3b9"
},
"outputs": [],
"source": [
"# df = pd.read_csv(\"./data/scooter/E-Scooter_Trips_-_2020.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "8af82379",
"metadata": {},
"outputs": [],
"source": [
"df = pd.read_csv(\"./data/E-Scooter_Trips_-_2020.csv\")"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "19665919-c190-4d8b-af25-b50998df6e20",
"metadata": {
"id": "19665919-c190-4d8b-af25-b50998df6e20"
},
"outputs": [
{
"data": {
"text/html": [
"<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>Trip ID</th>\n",
" <th>Start Time</th>\n",
" <th>End Time</th>\n",
" <th>Trip Distance</th>\n",
" <th>Trip Duration</th>\n",
" <th>Vendor</th>\n",
" <th>Start Community Area Number</th>\n",
" <th>End Community Area Number</th>\n",
" <th>Start Community Area Name</th>\n",
" <th>End Community Area Name</th>\n",
" <th>Start Centroid Latitude</th>\n",
" <th>Start Centroid Longitude</th>\n",
" <th>Start Centroid Location</th>\n",
" <th>End Centroid Latitude</th>\n",
" <th>End Centroid Longitude</th>\n",
" <th>End Centroid Location</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3eb9a2a3-3266-4559-b1ec-e83a6f7972ab</td>\n",
" <td>08/12/2020 05:00:00 AM</td>\n",
" <td>08/12/2020 05:00:00 AM</td>\n",
" <td>1,153</td>\n",
" <td>1,027</td>\n",
" <td>spin</td>\n",
" <td>68.0</td>\n",
" <td>68.0</td>\n",
" <td>ENGLEWOOD</td>\n",
" <td>ENGLEWOOD</td>\n",
" <td>41.780068</td>\n",
" <td>-87.642266</td>\n",
" <td>POINT (-87.64226608 41.78006847)</td>\n",
" <td>41.780068</td>\n",
" <td>-87.642266</td>\n",
" <td>POINT (-87.64226608 41.78006847)</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>82dd7b8f-8de0-4f25-829b-b32bf47e8419</td>\n",
" <td>08/12/2020 05:00:00 AM</td>\n",
" <td>08/12/2020 05:00:00 AM</td>\n",
" <td>17</td>\n",
" <td>91</td>\n",
" <td>spin</td>\n",
" <td>22.0</td>\n",
" <td>21.0</td>\n",
" <td>LOGAN SQUARE</td>\n",
" <td>AVONDALE</td>\n",
" <td>41.922903</td>\n",
" <td>-87.704301</td>\n",
" <td>POINT (-87.70430082 41.92290349)</td>\n",
" <td>41.939283</td>\n",
" <td>-87.710757</td>\n",
" <td>POINT (-87.71075685 41.93928256)</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Trip ID Start Time \\\n",
"0 3eb9a2a3-3266-4559-b1ec-e83a6f7972ab 08/12/2020 05:00:00 AM \n",
"1 82dd7b8f-8de0-4f25-829b-b32bf47e8419 08/12/2020 05:00:00 AM \n",
"\n",
" End Time Trip Distance Trip Duration Vendor \\\n",
"0 08/12/2020 05:00:00 AM 1,153 1,027 spin \n",
"1 08/12/2020 05:00:00 AM 17 91 spin \n",
"\n",
" Start Community Area Number End Community Area Number \\\n",
"0 68.0 68.0 \n",
"1 22.0 21.0 \n",
"\n",
" Start Community Area Name End Community Area Name Start Centroid Latitude \\\n",
"0 ENGLEWOOD ENGLEWOOD 41.780068 \n",
"1 LOGAN SQUARE AVONDALE 41.922903 \n",
"\n",
" Start Centroid Longitude Start Centroid Location \\\n",
"0 -87.642266 POINT (-87.64226608 41.78006847) \n",
"1 -87.704301 POINT (-87.70430082 41.92290349) \n",
"\n",
" End Centroid Latitude End Centroid Longitude \\\n",
"0 41.780068 -87.642266 \n",
"1 41.939283 -87.710757 \n",
"\n",
" End Centroid Location \n",
"0 POINT (-87.64226608 41.78006847) \n",
"1 POINT (-87.71075685 41.93928256) "
]
},
"execution_count": 5,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.head(2)"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "3f056dce-a831-45de-8248-7e02fd953a7d",
"metadata": {
"id": "3f056dce-a831-45de-8248-7e02fd953a7d"
},
"outputs": [],
"source": [
"df = df.dropna()"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "e90ac011-2b64-4d37-9ac8-aa1385fd3122",
"metadata": {
"id": "e90ac011-2b64-4d37-9ac8-aa1385fd3122"
},
"outputs": [],
"source": [
"df = df.astype({\"Start Community Area Number\": int, \"End Community Area Number\": int})"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "f97344e1-77e2-4319-8ee1-183e735702da",
"metadata": {
"id": "f97344e1-77e2-4319-8ee1-183e735702da"
},
"outputs": [],
"source": [
"communities = set(df[\"Start Community Area Number\"].unique()) or set( df[\"End Community Area Number\"].unique())"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "c403e385-1f00-4dbc-a867-25d2e11b07d5",
"metadata": {
"id": "c403e385-1f00-4dbc-a867-25d2e11b07d5"
},
"outputs": [
{
"data": {
"text/plain": [
"77"
]
},
"execution_count": 11,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"len(communities)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f38f6c51-859e-4a55-b6a5-20e68b18252a",
"metadata": {
"id": "f38f6c51-859e-4a55-b6a5-20e68b18252a"
},
"outputs": [],
"source": [
"df[\"Start Time\"] = pd.to_datetime(df[\"Start Time\"])"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "b0b94d62-a159-4b8c-98eb-a11b4ff4adcc",
"metadata": {
"id": "b0b94d62-a159-4b8c-98eb-a11b4ff4adcc"
},
"outputs": [],
"source": [
"df[\"End Time\"] = pd.to_datetime(df[\"End Time\"])"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "f960381b-e875-4d8e-bcf8-60f786128e28",
"metadata": {
"id": "f960381b-e875-4d8e-bcf8-60f786128e28",
"scrolled": true
},
"outputs": [
{
"data": {
"text/plain": [
"Trip ID object\n",
"Start Time datetime64[ns]\n",
"End Time datetime64[ns]\n",
"Trip Distance object\n",
"Trip Duration object\n",
"Vendor object\n",
"Start Community Area Number int32\n",
"End Community Area Number int32\n",
"Start Community Area Name object\n",
"End Community Area Name object\n",
"Start Centroid Latitude float64\n",
"Start Centroid Longitude float64\n",
"Start Centroid Location object\n",
"End Centroid Latitude float64\n",
"End Centroid Longitude float64\n",
"End Centroid Location object\n",
"dtype: object"
]
},
"execution_count": 14,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df.dtypes"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "dde242e4-6720-40b4-9ddc-6f54d93cbb20",
"metadata": {
"id": "dde242e4-6720-40b4-9ddc-6f54d93cbb20"
},
"outputs": [
{
"data": {
"text/plain": [
"(Timestamp('2020-08-12 05:00:00'),\n",
" Timestamp('2020-12-12 21:00:00'),\n",
" Timestamp('2020-08-12 05:00:00'),\n",
" Timestamp('2020-12-12 22:00:00'))"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df[\"Start Time\"].min(), df[\"Start Time\"].max(), df[\"End Time\"].min(), df[\"End Time\"].max()"
]
},
{
"cell_type": "code",
"execution_count": 16,
"id": "e11d210a-d174-4529-925a-29ddc86bb9d6",
"metadata": {
"id": "e11d210a-d174-4529-925a-29ddc86bb9d6"
},
"outputs": [],
"source": [
"community_map = {key: value for value, key in enumerate(communities)}"
]
},
{
"cell_type": "code",
"execution_count": 17,
"id": "f782954d-48ec-4c09-a3cb-2b2927cc0c98",
"metadata": {
"id": "f782954d-48ec-4c09-a3cb-2b2927cc0c98"
},
"outputs": [],
"source": [
"from datetime import datetime\n",
"start = datetime(year = 2020, month = 8, day = 12, hour = 0, minute = 0, second = 0)\n",
"end = datetime(year = 2020, month = 12, day = 12, hour = 0, minute = 0, second = 0)"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "d07ede9b-7a8d-4a1e-9eaf-432d2478f22b",
"metadata": {
"id": "d07ede9b-7a8d-4a1e-9eaf-432d2478f22b"
},
"outputs": [
{
"data": {
"text/plain": [
"(datetime.datetime(2020, 8, 12, 0, 0), datetime.datetime(2020, 12, 12, 0, 0))"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"start, end"
]
},
{
"cell_type": "code",
"execution_count": 19,
"id": "1a9b13f8-2a1f-4eef-8503-993a753e5606",
"metadata": {
"id": "1a9b13f8-2a1f-4eef-8503-993a753e5606"
},
"outputs": [
{
"data": {
"text/plain": [
"2928.0"
]
},
"execution_count": 19,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"(end - start).total_seconds()/(60 * 60)"
]
},
{
"cell_type": "code",
"execution_count": 20,
"id": "f3dedc91-bf17-4f7a-81c2-a3d3648a4d72",
"metadata": {
"id": "f3dedc91-bf17-4f7a-81c2-a3d3648a4d72"
},
"outputs": [
{
"data": {
"text/plain": [
"2952"
]
},
"execution_count": 20,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"2928 + 24"
]
},
{
"cell_type": "code",
"execution_count": 21,
"id": "8ad49821-b152-4227-81fb-40b2687d71c8",
"metadata": {
"id": "8ad49821-b152-4227-81fb-40b2687d71c8"
},
"outputs": [],
"source": [
"df[\"start_midx\"] = df[\"Start Community Area Number\"].map(community_map)\n",
"df[\"end_midx\"] = df[\"End Community Area Number\"].map(community_map)"
]
},
{
"cell_type": "code",
"execution_count": 22,
"id": "93d4c5cb-a009-49ab-9631-0b90dd06dad0",
"metadata": {
"id": "93d4c5cb-a009-49ab-9631-0b90dd06dad0"
},
"outputs": [],
"source": [
"start_trips = pd.DataFrame(df.groupby([\"Start Time\", \"start_midx\"])[\"Trip ID\"].count())"
]
},
{
"cell_type": "code",
"execution_count": 23,
"id": "b543c975-204b-4c2c-acd8-75bab929da80",
"metadata": {
"id": "b543c975-204b-4c2c-acd8-75bab929da80"
},
"outputs": [],
"source": [
"end_trips = pd.DataFrame(df.groupby([\"End Time\", \"end_midx\"])[\"Trip ID\"].count())"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f9651eea-5181-4ae5-a342-6e622076ae02",
"metadata": {
"id": "f9651eea-5181-4ae5-a342-6e622076ae02"
},
"outputs": [],
"source": [
"trips.loc[(y[0], 15)][0]"
]
},
{
"cell_type": "code",
"execution_count": 31,
"id": "fe68a2f9-034d-4aea-9fa8-ac147f88a1c8",
"metadata": {
"id": "fe68a2f9-034d-4aea-9fa8-ac147f88a1c8"
},
"outputs": [],
"source": [
"map_shape = (7,11)\n",
"num_map_element = map_shape[0] * map_shape[1]\n",
"in_map = np.zeros(num_map_element)\n"
]
},
{
"cell_type": "code",
"execution_count": 32,
"id": "e118c0a4-60e4-413a-8d12-39ca32f646aa",
"metadata": {
"id": "e118c0a4-60e4-413a-8d12-39ca32f646aa"
},
"outputs": [
{
"data": {
"text/plain": [
"array([[0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.],\n",
" [0., 0., 0., 0., 0., 0., 0., 0., 0., 0., 0.]])"
]
},
"execution_count": 32,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"in_map.reshape(map_shape)"
]
},
{
"cell_type": "code",
"execution_count": 33,
"id": "175845f6-2893-49f6-a7a8-4f24f17db903",
"metadata": {
"id": "175845f6-2893-49f6-a7a8-4f24f17db903"
},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"C:\\Users\\yy\\AppData\\Local\\Temp\\ipykernel_39464\\2680085065.py:14: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" check_in_map[j] = start_trips.loc[(time, j)][0]\n",
"C:\\Users\\yy\\AppData\\Local\\Temp\\ipykernel_39464\\2680085065.py:19: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n",
" check_out_map[j] = end_trips.loc[(time, j)][0]\n"
]
}
],
"source": [
"from datetime import datetime, timedelta\n",
"import numpy as np\n",
"\n",
"timeslots = []\n",
"time_clips = []\n",
"\n",
"for i in range(2952):\n",
" time = start + timedelta(hours=i)\n",
" timeslots.append(time)\n",
" check_in_map = np.zeros(num_map_element)\n",
" check_out_map = np.zeros(num_map_element)\n",
" for j in range(num_map_element):\n",
" try:\n",
" check_in_map[j] = start_trips.loc[(time, j)][0]\n",
" except:\n",
" continue\n",
"\n",
" try:\n",
" check_out_map[j] = end_trips.loc[(time, j)][0]\n",
" except:\n",
" continue\n",
"\n",
" check_in_map = check_in_map.reshape(map_shape)\n",
" check_out_map = check_out_map.reshape(map_shape)\n",
"\n",
" time_clips.append((check_in_map, check_out_map))"
]
},
{
"cell_type": "code",
"execution_count": 34,
"id": "fac14eaa-6b8a-404c-a3a7-6d2342836646",
"metadata": {
"id": "fac14eaa-6b8a-404c-a3a7-6d2342836646"
},
"outputs": [
{
"data": {
"text/plain": [
"datetime.datetime(2020, 12, 12, 23, 0)"
]
},
"execution_count": 34,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"timeslots[-1]"
]
},
{
"cell_type": "code",
"execution_count": 35,
"id": "1cc1205f-8246-425e-9435-0b9011cca921",
"metadata": {
"id": "1cc1205f-8246-425e-9435-0b9011cca921"
},
"outputs": [],
"source": [
"data = np.array(time_clips)"
]
},
{
"cell_type": "code",
"execution_count": 36,
"id": "35867474-d779-4eaa-b0ad-864bb2a41e65",
"metadata": {
"id": "35867474-d779-4eaa-b0ad-864bb2a41e65"
},
"outputs": [
{
"data": {
"text/plain": [
"(2952, 2, 7, 11)"
]
},
"execution_count": 36,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data.shape"
]
},
{
"cell_type": "code",
"execution_count": 37,
"id": "74442b4c-ed9a-4baa-8bb6-6b2527ff08fc",
"metadata": {
"id": "74442b4c-ed9a-4baa-8bb6-6b2527ff08fc"
},
"outputs": [],
"source": [
"np.save(\"./scooter_data\", data)"
]
},
{
"cell_type": "code",
"execution_count": 40,
"id": "44960cb7-8949-4df2-99a5-d00865e94004",
"metadata": {
"id": "44960cb7-8949-4df2-99a5-d00865e94004"
},
"outputs": [
{
"data": {
"text/plain": [
"(2952, 2, 7, 11)"
]
},
"execution_count": 40,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"data = np.load(\"./scooter_data.npy\")\n",
"data.shape"
]
},
{
"cell_type": "code",
"execution_count": 55,
"id": "931b1817",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"[<matplotlib.lines.Line2D at 0x1a4cd32a0e0>]"
]
},
"execution_count": 55,
"metadata": {},
"output_type": "execute_result"
},
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 640x480 with 1 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"\n",
"test_data = data[:100,1,0,2]\n",
"import matplotlib.pyplot as plt\n",
"plt.plot(test_data)"
]
},
{
"cell_type": "code",
"execution_count": 56,
"id": "cf9e6d94",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"<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>Trip ID</th>\n",
" <th>Start Time</th>\n",
" <th>End Time</th>\n",
" <th>Trip Distance</th>\n",
" <th>Trip Duration</th>\n",
" <th>Vendor</th>\n",
" <th>Start Community Area Number</th>\n",
" <th>End Community Area Number</th>\n",
" <th>Start Community Area Name</th>\n",
" <th>End Community Area Name</th>\n",
" <th>Start Centroid Latitude</th>\n",
" <th>Start Centroid Longitude</th>\n",
" <th>Start Centroid Location</th>\n",
" <th>End Centroid Latitude</th>\n",
" <th>End Centroid Longitude</th>\n",
" <th>End Centroid Location</th>\n",
" <th>start_midx</th>\n",
" <th>end_midx</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>3eb9a2a3-3266-4559-b1ec-e83a6f7972ab</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>1,153</td>\n",
" <td>1,027</td>\n",
" <td>spin</td>\n",
" <td>68</td>\n",
" <td>68</td>\n",
" <td>ENGLEWOOD</td>\n",
" <td>ENGLEWOOD</td>\n",
" <td>41.780068</td>\n",
" <td>-87.642266</td>\n",
" <td>POINT (-87.64226608 41.78006847)</td>\n",
" <td>41.780068</td>\n",
" <td>-87.642266</td>\n",
" <td>POINT (-87.64226608 41.78006847)</td>\n",
" <td>67</td>\n",
" <td>67</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>82dd7b8f-8de0-4f25-829b-b32bf47e8419</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>17</td>\n",
" <td>91</td>\n",
" <td>spin</td>\n",
" <td>22</td>\n",
" <td>21</td>\n",
" <td>LOGAN SQUARE</td>\n",
" <td>AVONDALE</td>\n",
" <td>41.922903</td>\n",
" <td>-87.704301</td>\n",
" <td>POINT (-87.70430082 41.92290349)</td>\n",
" <td>41.939283</td>\n",
" <td>-87.710757</td>\n",
" <td>POINT (-87.71075685 41.93928256)</td>\n",
" <td>21</td>\n",
" <td>20</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>9120cbf3-f749-49b6-b894-0e6e065cd731</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>2,883</td>\n",
" <td>724</td>\n",
" <td>spin</td>\n",
" <td>3</td>\n",
" <td>6</td>\n",
" <td>UPTOWN</td>\n",
" <td>LAKE VIEW</td>\n",
" <td>41.965435</td>\n",
" <td>-87.655145</td>\n",
" <td>POINT (-87.65514456 41.96543532)</td>\n",
" <td>41.943514</td>\n",
" <td>-87.657498</td>\n",
" <td>POINT (-87.65749768 41.9435138)</td>\n",
" <td>2</td>\n",
" <td>5</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>cf2e4abc-2649-49be-924b-468a1aefc4c8</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>2020-08-12 05:00:00</td>\n",
" <td>5</td>\n",
" <td>21</td>\n",
" <td>spin</td>\n",
" <td>31</td>\n",
" <td>31</td>\n",
" <td>LOWER WEST SIDE</td>\n",
" <td>LOWER WEST SIDE</td>\n",
" <td>41.848335</td>\n",
" <td>-87.675179</td>\n",
" <td>POINT (-87.67517932 41.84833501)</td>\n",
" <td>41.848335</td>\n",
" <td>-87.675179</td>\n",
" <td>POINT (-87.67517932 41.84833501)</td>\n",
" <td>30</td>\n",
" <td>30</td>\n",
" </tr>\n",
" <tr>\n",
" <th>4</th>\n",
" <td>0448afb5-ab64-4090-b528-e3050e7eb0f2</td>\n",
" <td>2020-08-12 07:00:00</td>\n",
" <td>2020-08-12 07:00:00</td>\n",
" <td>1,179</td>\n",
" <td>245</td>\n",
" <td>spin</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>LAKE VIEW</td>\n",
" <td>LAKE VIEW</td>\n",
" <td>41.943514</td>\n",
" <td>-87.657498</td>\n",
" <td>POINT (-87.65749768 41.9435138)</td>\n",
" <td>41.943514</td>\n",
" <td>-87.657498</td>\n",
" <td>POINT (-87.65749768 41.9435138)</td>\n",
" <td>5</td>\n",
" <td>5</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",
" </tr>\n",
" <tr>\n",
" <th>630811</th>\n",
" <td>2c648499-436a-4244-bf2b-ce0041ee4129</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>2020-12-12 22:00:00</td>\n",
" <td>4,226</td>\n",
" <td>1,327</td>\n",
" <td>lime</td>\n",
" <td>11</td>\n",
" <td>11</td>\n",
" <td>JEFFERSON PARK</td>\n",
" <td>JEFFERSON PARK</td>\n",
" <td>41.978727</td>\n",
" <td>-87.768147</td>\n",
" <td>POINT (-87.76814656 41.97872681)</td>\n",
" <td>41.978727</td>\n",
" <td>-87.768147</td>\n",
" <td>POINT (-87.76814656 41.97872681)</td>\n",
" <td>10</td>\n",
" <td>10</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630812</th>\n",
" <td>72119cd3-18db-4a08-8da7-1639a6894a18</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>1,822</td>\n",
" <td>211</td>\n",
" <td>spin</td>\n",
" <td>3</td>\n",
" <td>3</td>\n",
" <td>UPTOWN</td>\n",
" <td>UPTOWN</td>\n",
" <td>41.965435</td>\n",
" <td>-87.655145</td>\n",
" <td>POINT (-87.65514456 41.96543532)</td>\n",
" <td>41.965435</td>\n",
" <td>-87.655145</td>\n",
" <td>POINT (-87.65514456 41.96543532)</td>\n",
" <td>2</td>\n",
" <td>2</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630813</th>\n",
" <td>1e01298b-75e3-4a22-b440-388b093f7202</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>2020-12-12 22:00:00</td>\n",
" <td>878</td>\n",
" <td>325</td>\n",
" <td>lime</td>\n",
" <td>28</td>\n",
" <td>24</td>\n",
" <td>NEAR WEST SIDE</td>\n",
" <td>WEST TOWN</td>\n",
" <td>41.874254</td>\n",
" <td>-87.664619</td>\n",
" <td>POINT (-87.66461906 41.87425419)</td>\n",
" <td>41.901459</td>\n",
" <td>-87.675568</td>\n",
" <td>POINT (-87.67556756 41.90145875)</td>\n",
" <td>27</td>\n",
" <td>23</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630814</th>\n",
" <td>cce935b2-3dc8-4e06-b913-a1fd37c652d0</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>2020-12-12 22:00:00</td>\n",
" <td>294</td>\n",
" <td>1,332</td>\n",
" <td>bird</td>\n",
" <td>7</td>\n",
" <td>7</td>\n",
" <td>LINCOLN PARK</td>\n",
" <td>LINCOLN PARK</td>\n",
" <td>41.921880</td>\n",
" <td>-87.645647</td>\n",
" <td>POINT (-87.64564651 41.92188043)</td>\n",
" <td>41.921880</td>\n",
" <td>-87.645647</td>\n",
" <td>POINT (-87.64564651 41.92188043)</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" </tr>\n",
" <tr>\n",
" <th>630815</th>\n",
" <td>758cd2bd-45da-4c2c-b73a-8a07de69bd22</td>\n",
" <td>2020-12-12 21:00:00</td>\n",
" <td>2020-12-12 22:00:00</td>\n",
" <td>5,403</td>\n",
" <td>2,341</td>\n",
" <td>spin</td>\n",
" <td>6</td>\n",
" <td>6</td>\n",
" <td>LAKE VIEW</td>\n",
" <td>LAKE VIEW</td>\n",
" <td>41.943514</td>\n",
" <td>-87.657498</td>\n",
" <td>POINT (-87.65749768 41.9435138)</td>\n",
" <td>41.943514</td>\n",
" <td>-87.657498</td>\n",
" <td>POINT (-87.65749768 41.9435138)</td>\n",
" <td>5</td>\n",
" <td>5</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"<p>629175 rows × 18 columns</p>\n",
"</div>"
],
"text/plain": [
" Trip ID Start Time \\\n",
"0 3eb9a2a3-3266-4559-b1ec-e83a6f7972ab 2020-08-12 05:00:00 \n",
"1 82dd7b8f-8de0-4f25-829b-b32bf47e8419 2020-08-12 05:00:00 \n",
"2 9120cbf3-f749-49b6-b894-0e6e065cd731 2020-08-12 05:00:00 \n",
"3 cf2e4abc-2649-49be-924b-468a1aefc4c8 2020-08-12 05:00:00 \n",
"4 0448afb5-ab64-4090-b528-e3050e7eb0f2 2020-08-12 07:00:00 \n",
"... ... ... \n",
"630811 2c648499-436a-4244-bf2b-ce0041ee4129 2020-12-12 21:00:00 \n",
"630812 72119cd3-18db-4a08-8da7-1639a6894a18 2020-12-12 21:00:00 \n",
"630813 1e01298b-75e3-4a22-b440-388b093f7202 2020-12-12 21:00:00 \n",
"630814 cce935b2-3dc8-4e06-b913-a1fd37c652d0 2020-12-12 21:00:00 \n",
"630815 758cd2bd-45da-4c2c-b73a-8a07de69bd22 2020-12-12 21:00:00 \n",
"\n",
" End Time Trip Distance Trip Duration Vendor \\\n",
"0 2020-08-12 05:00:00 1,153 1,027 spin \n",
"1 2020-08-12 05:00:00 17 91 spin \n",
"2 2020-08-12 05:00:00 2,883 724 spin \n",
"3 2020-08-12 05:00:00 5 21 spin \n",
"4 2020-08-12 07:00:00 1,179 245 spin \n",
"... ... ... ... ... \n",
"630811 2020-12-12 22:00:00 4,226 1,327 lime \n",
"630812 2020-12-12 21:00:00 1,822 211 spin \n",
"630813 2020-12-12 22:00:00 878 325 lime \n",
"630814 2020-12-12 22:00:00 294 1,332 bird \n",
"630815 2020-12-12 22:00:00 5,403 2,341 spin \n",
"\n",
" Start Community Area Number End Community Area Number \\\n",
"0 68 68 \n",
"1 22 21 \n",
"2 3 6 \n",
"3 31 31 \n",
"4 6 6 \n",
"... ... ... \n",
"630811 11 11 \n",
"630812 3 3 \n",
"630813 28 24 \n",
"630814 7 7 \n",
"630815 6 6 \n",
"\n",
" Start Community Area Name End Community Area Name \\\n",
"0 ENGLEWOOD ENGLEWOOD \n",
"1 LOGAN SQUARE AVONDALE \n",
"2 UPTOWN LAKE VIEW \n",
"3 LOWER WEST SIDE LOWER WEST SIDE \n",
"4 LAKE VIEW LAKE VIEW \n",
"... ... ... \n",
"630811 JEFFERSON PARK JEFFERSON PARK \n",
"630812 UPTOWN UPTOWN \n",
"630813 NEAR WEST SIDE WEST TOWN \n",
"630814 LINCOLN PARK LINCOLN PARK \n",
"630815 LAKE VIEW LAKE VIEW \n",
"\n",
" Start Centroid Latitude Start Centroid Longitude \\\n",
"0 41.780068 -87.642266 \n",
"1 41.922903 -87.704301 \n",
"2 41.965435 -87.655145 \n",
"3 41.848335 -87.675179 \n",
"4 41.943514 -87.657498 \n",
"... ... ... \n",
"630811 41.978727 -87.768147 \n",
"630812 41.965435 -87.655145 \n",
"630813 41.874254 -87.664619 \n",
"630814 41.921880 -87.645647 \n",
"630815 41.943514 -87.657498 \n",
"\n",
" Start Centroid Location End Centroid Latitude \\\n",
"0 POINT (-87.64226608 41.78006847) 41.780068 \n",
"1 POINT (-87.70430082 41.92290349) 41.939283 \n",
"2 POINT (-87.65514456 41.96543532) 41.943514 \n",
"3 POINT (-87.67517932 41.84833501) 41.848335 \n",
"4 POINT (-87.65749768 41.9435138) 41.943514 \n",
"... ... ... \n",
"630811 POINT (-87.76814656 41.97872681) 41.978727 \n",
"630812 POINT (-87.65514456 41.96543532) 41.965435 \n",
"630813 POINT (-87.66461906 41.87425419) 41.901459 \n",
"630814 POINT (-87.64564651 41.92188043) 41.921880 \n",
"630815 POINT (-87.65749768 41.9435138) 41.943514 \n",
"\n",
" End Centroid Longitude End Centroid Location start_midx \\\n",
"0 -87.642266 POINT (-87.64226608 41.78006847) 67 \n",
"1 -87.710757 POINT (-87.71075685 41.93928256) 21 \n",
"2 -87.657498 POINT (-87.65749768 41.9435138) 2 \n",
"3 -87.675179 POINT (-87.67517932 41.84833501) 30 \n",
"4 -87.657498 POINT (-87.65749768 41.9435138) 5 \n",
"... ... ... ... \n",
"630811 -87.768147 POINT (-87.76814656 41.97872681) 10 \n",
"630812 -87.655145 POINT (-87.65514456 41.96543532) 2 \n",
"630813 -87.675568 POINT (-87.67556756 41.90145875) 27 \n",
"630814 -87.645647 POINT (-87.64564651 41.92188043) 6 \n",
"630815 -87.657498 POINT (-87.65749768 41.9435138) 5 \n",
"\n",
" end_midx \n",
"0 67 \n",
"1 20 \n",
"2 5 \n",
"3 30 \n",
"4 5 \n",
"... ... \n",
"630811 10 \n",
"630812 2 \n",
"630813 23 \n",
"630814 6 \n",
"630815 5 \n",
"\n",
"[629175 rows x 18 columns]"
]
},
"execution_count": 56,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"df"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1282a1e9",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"colab": {
"provenance": []
},
"kernelspec": {
"display_name": "py310",
"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.10.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}