︠673adb23-845e-41d2-9a55-a0bbc7e91d2di︠
%md
# COVID-19 Display US Testing Time Series
︡00722435-043b-4311-9bcd-189e613efbfc︡{"done":true,"md":"\n# COVID-19 Display US Testing Time Series"}
︠d9fab1df-5e40-4904-9e52-87754b54fdd6s︠
%auto
%default_mode python3
︡2d745f7f-fe43-47b0-95e2-08e326a9145a︡{"done":true}
︠e4e3482e-3120-4ff7-b1a0-09b94f9f2ca6s︠
import pandas as pd
import numpy as np
︡834ad081-b5b6-4ffa-a6f3-c2b73024427d︡{"done":true}
︠3b612be9-c367-460f-ae4c-90819432a6b2s︠
# use testing series collected by The Covid Tracking Project
# https://covidtracking.com/api/
url = f"https://covidtracking.com/api/us/daily.csv"
url
︡673906f3-f45c-4b12-ae05-1fc1142d2ff1︡{"stdout":"'https://covidtracking.com/api/us/daily.csv'"}︡{"done":true}
︠3393df03-a3f7-4ff0-8889-1aab2f8cd68as︠
# fetch US data from Covid Tracking Project
# keep only a few columns
df = pd.read_csv(url, parse_dates=['date', 'dateChecked'])[['date','positive','death','total']]
︡47c6d7fb-890c-4a6f-842e-335be45c25d8︡{"done":true}
︠dfd7878f-f814-45b4-8689-1e176e6cee42s︠
# use date as x-axis for displays so make it the index
df.set_index('date', inplace=True)
df.set_index(df.index.strftime('%m/%d'), inplace=True)
df.sort_index(inplace=True)
︡103cf2f5-b013-40c4-a8e9-8d59a8f5c611︡{"done":true}
︠800f0f33-5dd7-41c6-817c-d5b6c4b04f1bs︠
df.head(2)
︡ab741a87-9c3c-4afa-8b56-654332e3451f︡{"html":"
\n\n
\n \n \n | \n positive | \n death | \n total | \n
\n \n date | \n | \n | \n | \n
\n \n \n \n 01/22 | \n 2 | \n NaN | \n 2 | \n
\n \n 01/23 | \n 2 | \n NaN | \n 2 | \n
\n \n
\n
"}︡{"done":true}
︠ff4e28cc-c4e8-4a5a-922a-0348caa1972as︠
df[-30:].plot(y=['positive','total'], kind="bar", figsize=[8, 5], rot=45, fontsize=7);
︡69b4be85-eae8-48f1-9a09-c298d8617d82︡{"file":{"filename":"/tmp/tmpweUgis.png","show":true,"text":null,"uuid":"46a6953d-fa9b-4100-b3bf-1e6da0e11027"},"once":false}︡{"done":true}
︠d0c6a426-4c01-4272-8235-e666122761fas︠
df['positive/total'] = df.loc[:,'positive']/df.loc[:,'total']
︡afb6a96c-d1ba-46a5-b8d8-af7f35d45f72︡{"done":true}
︠3ec24571-ac2d-441e-81c7-997bdb7f184ds︠
df[-30:].plot(y=['positive/total'], kind="bar", figsize=[8, 5], rot=45, fontsize=7);
︡6a5ecfb0-c98f-45e4-9d8d-632a7306f69b︡{"file":{"filename":"/tmp/tmp8HfZoR.png","show":true,"text":null,"uuid":"aad3e1c1-e4c9-4f81-9ca5-83dc071993b1"},"once":false}︡{"done":true}
︠aa106e98-c28a-4fbf-a0ac-11d9124c89f7s︠
# just the confirmed (positives)
df[-30:].plot(y=['positive'], kind="bar", figsize=[8, 5], rot=45, fontsize=7);
︡b1f73ada-c193-49a4-8094-b0e921b39732︡{"file":{"filename":"/tmp/tmpt7_xKy.png","show":true,"text":null,"uuid":"5b56e325-805d-41c5-8999-c52977fdc355"},"once":false}︡{"done":true}
︠3a0ceba5-fb92-485a-9dad-643f9d729d77s︠
︡149a18c8-6613-49a9-96fb-fea3e46edf78︡{"done":true}
︠cc6cddd9-efcc-43e0-ba11-c5cbdcfa71b9s︠
︡d3e23f60-4ee4-44fe-8246-3b261c4cd518︡{"done":true}
︠2e4fe5cd-7ef9-4fa9-8b4c-e2821f14c956s︠
︡780159be-d00f-44f4-bfee-6afbe0477e3a︡{"done":true}
︠80da8036-2b2e-4032-9a66-de48994d9872s︠
︡60189ce1-d01d-4b89-89de-9fc0e6487310︡{"done":true}