Skip to content

Instantly share code, notes, and snippets.

@siraben
Last active February 22, 2022 16:25
Show Gist options
  • Save siraben/7da3268113f340b4bd6c7b99559cf2a0 to your computer and use it in GitHub Desktop.
Save siraben/7da3268113f340b4bd6c7b99559cf2a0 to your computer and use it in GitHub Desktop.
Web scraping Vanderbilt's COVID-19 dashboard
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 3,
"metadata": {
"collapsed": false
},
"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>Period Beginning</th>\n",
" <th>Period Ending</th>\n",
" <th>Total Positives</th>\n",
" <th>Percent of Vaccinated Communitythat Tested Positive</th>\n",
" <th>Percent of Unvaccinated Communitythat Tested Positive</th>\n",
" </tr>\n",
" </thead>\n",
" <tbody>\n",
" <tr>\n",
" <th>0</th>\n",
" <td>2022-02-06</td>\n",
" <td>2022-02-12</td>\n",
" <td>125</td>\n",
" <td>0.0061</td>\n",
" <td>0.0087</td>\n",
" </tr>\n",
" <tr>\n",
" <th>1</th>\n",
" <td>2022-01-30</td>\n",
" <td>2022-02-05</td>\n",
" <td>170</td>\n",
" <td>0.0081</td>\n",
" <td>0.0173</td>\n",
" </tr>\n",
" <tr>\n",
" <th>2</th>\n",
" <td>2022-01-23</td>\n",
" <td>2022-01-29</td>\n",
" <td>279</td>\n",
" <td>0.0128</td>\n",
" <td>0.0372</td>\n",
" </tr>\n",
" <tr>\n",
" <th>3</th>\n",
" <td>2022-01-16</td>\n",
" <td>2022-01-22</td>\n",
" <td>344</td>\n",
" <td>0.0163</td>\n",
" <td>0.0359</td>\n",
" </tr>\n",
" </tbody>\n",
"</table>\n",
"</div>"
],
"text/plain": [
" Period Beginning Period Ending Total Positives \\\n",
"0 2022-02-06 2022-02-12 125 \n",
"1 2022-01-30 2022-02-05 170 \n",
"2 2022-01-23 2022-01-29 279 \n",
"3 2022-01-16 2022-01-22 344 \n",
"\n",
" Percent of Vaccinated Communitythat Tested Positive \\\n",
"0 0.0061 \n",
"1 0.0081 \n",
"2 0.0128 \n",
"3 0.0163 \n",
"\n",
" Percent of Unvaccinated Communitythat Tested Positive \n",
"0 0.0087 \n",
"1 0.0173 \n",
"2 0.0372 \n",
"3 0.0359 "
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Parse COVID-19 data from Vanderbilt University's dashboard\n",
"# https://www.vanderbilt.edu/coronavirus/spring2022-covid19dashboard/\n",
"import requests\n",
"import pandas as pd\n",
"import matplotlib.pyplot as plt\n",
"from bs4 import BeautifulSoup\n",
"\n",
"# Get the data from the dashboard\n",
"url = 'https://www.vanderbilt.edu/coronavirus/spring2022-covid19dashboard/'\n",
"response = requests.get(url)\n",
"\n",
"# Parse the data with BeautifulSoup\n",
"soup = BeautifulSoup(response.text, 'html.parser')\n",
"\n",
"# Get the table, the class name contains tablepress\n",
"table = soup.find('table', class_='tablepress')\n",
"\n",
"# Get the table data\n",
"table_data = table.tbody.find_all('tr')\n",
"\n",
"# Get the table headers\n",
"table_headers = table.thead.find_all('th')\n",
"\n",
"# Get the table headers as a list\n",
"table_headers_list = []\n",
"for header in table_headers:\n",
" table_headers_list.append(header.text)\n",
"\n",
"# We have\n",
"# table_headers_list = ['Period Beginning', 'Period Ending', 'Total Positives', 'Percent of Vaccinated Communitythat Tested Positive', 'Percent of Unvaccinated Communitythat Tested Positive']\n",
"\n",
"# Each row looks like\n",
"# <td class=\"column-1\">6-Feb</td><td class=\"column-2\">12-Feb</td><td class=\"column-3\">125</td><td class=\"column-4\">0.61%</td><td class=\"column-5\">0.87%</td>\n",
"\n",
"# Create a dataframe using the table data and headers\n",
"df = pd.DataFrame(columns=table_headers_list)\n",
"\n",
"# Loop through each row and add to the dataframe\n",
"for row in table_data:\n",
" row_data = row.find_all('td')\n",
" row_data_list = []\n",
" for data in row_data:\n",
" row_data_list.append(data.text)\n",
" df = df.append(pd.Series(row_data_list, index=table_headers_list), ignore_index=True)\n",
"\n",
"# Add an offset to the Period Beginning and Period Ending columns to set the year to 2022\n",
"df['Period Beginning'] = pd.to_datetime(df['Period Beginning'], format='%d-%b') + pd.DateOffset(years=122)\n",
"df['Period Ending'] = pd.to_datetime(df['Period Ending'], format='%d-%b') + pd.DateOffset(years=122)\n",
"# Convert the Total Positives column to an integer\n",
"df['Total Positives'] = df['Total Positives'].astype(int)\n",
"# Convert the Percent coloumns to floats, the data is x%\n",
"df['Percent of Vaccinated Communitythat Tested Positive'] = df['Percent of Vaccinated Communitythat Tested Positive'].str.replace('%', '').astype(float) / 100\n",
"df['Percent of Unvaccinated Communitythat Tested Positive'] = df['Percent of Unvaccinated Communitythat Tested Positive'].str.replace('%', '').astype(float) / 100\n",
"\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {
"collapsed": false
},
"outputs": [
{
"data": {
"image/png": "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",
"text/plain": [
"<Figure size 864x432 with 1 Axes>"
]
},
"metadata": {
"needs_background": "light"
},
"output_type": "display_data"
}
],
"source": [
"# Plot the Total Positives column against the Period Ending column\n",
"df.plot(x='Period Ending', y='Total Positives', figsize=(12,6))\n",
"plt.show()"
]
}
],
"metadata": {
"interpreter": {
"hash": "0b406169963695be80833c763e42af60529bc0cf3a31f4d7f4cc1081f39f988b"
},
"kernelspec": {
"argv": [
"python",
"-m",
"ipykernel_launcher",
"-f",
"{connection_file}"
],
"display_name": "Python 3 (ipykernel)",
"env": null,
"interrupt_mode": "signal",
"language": "python",
"metadata": {
"debugger": true
},
"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.9.9"
},
"name": "vandy_covid.ipynb"
},
"nbformat": 4,
"nbformat_minor": 2
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment