# Start writing code here...
# Import modules for API calls
import requests
import io
import pandas as pd
import requests
import json
from datetime import datetime
import numpy as np
# Import module for plotting
import seaborn as sns
# interactive visualization
import plotly.express as px
import plotly.graph_objs as go
## JHU Vaccination Rates (Taken From: https://github.com/owid/covid-19-data/tree/master/public/data)
url = 'https://raw.githubusercontent.com/owid/covid-19-data/master/public/data/owid-covid-data.csv'
download = requests.get(url).content
covid = pd.read_csv(io.StringIO(download.decode('utf-8')), parse_dates=['date'])
covid_US = covid[covid["location"]=="United States"]
covid_US
!pip install yfinance==0.1.63
Collecting yfinance==0.1.63
Downloading yfinance-0.1.63.tar.gz (26 kB)
Requirement already satisfied: pandas>=0.24 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from yfinance==0.1.63) (1.2.5)
Requirement already satisfied: numpy>=1.15 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from yfinance==0.1.63) (1.19.5)
Requirement already satisfied: requests>=2.20 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from yfinance==0.1.63) (2.26.0)
Collecting multitasking>=0.0.7
Downloading multitasking-0.0.9.tar.gz (8.1 kB)
Requirement already satisfied: lxml>=4.5.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from yfinance==0.1.63) (4.6.3)
Requirement already satisfied: pytz>=2017.3 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from pandas>=0.24->yfinance==0.1.63) (2021.1)
Requirement already satisfied: python-dateutil>=2.7.3 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from pandas>=0.24->yfinance==0.1.63) (2.8.2)
Requirement already satisfied: six>=1.5 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from python-dateutil>=2.7.3->pandas>=0.24->yfinance==0.1.63) (1.16.0)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests>=2.20->yfinance==0.1.63) (1.26.6)
Requirement already satisfied: idna<4,>=2.5 in /shared-libs/python3.7/py-core/lib/python3.7/site-packages (from requests>=2.20->yfinance==0.1.63) (3.2)
Requirement already satisfied: certifi>=2017.4.17 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests>=2.20->yfinance==0.1.63) (2021.5.30)
Requirement already satisfied: charset-normalizer~=2.0.0 in /shared-libs/python3.7/py/lib/python3.7/site-packages (from requests>=2.20->yfinance==0.1.63) (2.0.4)
Building wheels for collected packages: yfinance, multitasking
Building wheel for yfinance (setup.py) ... done
Created wheel for yfinance: filename=yfinance-0.1.63-py2.py3-none-any.whl size=23918 sha256=506b8d8c4ee862702124de1ba0aaa0b2b1679fd8544deacd5504cab0b32d50b9
Stored in directory: /root/.cache/pip/wheels/fe/87/8b/7ec24486e001d3926537f5f7801f57a74d181be25b11157983
Building wheel for multitasking (setup.py) ... done
Created wheel for multitasking: filename=multitasking-0.0.9-py3-none-any.whl size=8375 sha256=11e99cb6e4a52ff1a6e984bcc59ab13a551639b4aa00122e2882de8d3400c902
Stored in directory: /root/.cache/pip/wheels/ae/25/47/4d68431a7ec1b6c4b5233365934b74c1d4e665bf5f968d363a
Successfully built yfinance multitasking
Installing collected packages: multitasking, yfinance
Successfully installed multitasking-0.0.9 yfinance-0.1.63
WARNING: You are using pip version 21.2.3; however, version 21.2.4 is available.
You should consider upgrading via the '/root/venv/bin/python -m pip install --upgrade pip' command.
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import datetime as dt
import yfinance as yf
# find the symbol (i.e., google the instrument + 'yahoo finance') to any data series you are interested at
# e.g., market/sector index ETF for your chosen country and various asset classes (e.g., Comex Gold's symbol is 'GC=F')
# e.g., SPY (https://finance.yahoo.com/quote/SPY/)
#Medical and health ETF, Zoom (remote working), Paypal (digital wallet), Bitcoin (digital currency), US bond, Bilibili (Video App)
symbols_list = ['PYPL', 'VHT','BTC-USD', 'GOOG', 'ZM', 'SPY', 'FB', 'AMZN']
start = dt.datetime(2020,3,1)
end = dt.datetime(2021,9,1)
data = yf.download(symbols_list, start=start, end=end)
[*********************100%***********************] 8 of 8 completed
mobility = pd.read_csv('Global_Mobility_Report.csv')
mobility = mobility[mobility["country_region"]=="United States"]
mobility['date'] = mobility.date.astype('datetime64')
/shared-libs/python3.7/py-core/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3170: DtypeWarning: Columns (4,5) have mixed types.Specify dtype option on import or set low_memory=False.
interactivity=interactivity, compiler=compiler, result=result)
# filter column adjusted close
# do not use close price as the price might be discountinous due to corporate actions
df = data['Adj Close']
# Unique names (e.g., crypto trade on weekends as well but stock do not)
df = df.ffill()
df.head()
df.reset_index(inplace=True)
df = df.rename(columns={"Date": "date"})
covid_US.columns
correlation = df.merge(covid_US[["date","excess_mortality", "hospital_beds_per_thousand", "new_cases_per_million", "people_vaccinated_per_hundred",]], how = "inner", on = "date")
correlation_new = correlation.merge(mobility[['date','retail_and_recreation_percent_change_from_baseline',
'grocery_and_pharmacy_percent_change_from_baseline',
'parks_percent_change_from_baseline',
'transit_stations_percent_change_from_baseline',
'workplaces_percent_change_from_baseline',
'residential_percent_change_from_baseline']],how = "inner", on = "date")
correlation_new.head()
correlation_new.replace('', np.nan).fillna(0)
corr_ = correlation_new.corr()
fig, ax = plt.subplots(figsize=(16,5))
sns.heatmap(corr_, annot=True, ax = ax)