以下数据分析的目的是了解新冠肺炎发生前后美国股票市场的变化。 以下探索的主要目的是回答指导性问题:
“新冠肺炎股市崩盘对标准普尔500指数中的公司有何影响?” 在这里,我们将假设一个投资者的立场,并进行彻底的分析。
学习目标:
import pandas as pd
import pandas_datareader as web
import datetime
import matplotlib.pyplot as plt
%matplotlib inline
为了更好地分析标准普尔500指数,我将使用我随机选择的三家公司的股票数据:特斯拉、苹果和迪士尼。这三家公司分别对应了不同的行业,新能源汽车,电子行业和旅游行业 在我看来,这三家公司是美国市场中中不同行业的一个很好的可视化——它们都可能受到不同于COVID-19的影响。而且这三家公司都具备全球性的产业链或者在不同的国家进行着旅游经营,通过研究分析它们在疫情期间的股价变化,有助于我们对于疫情时代下的世界变化有更深刻的理解
我们选取了疫情开始的2020年2月20日作为时间的起点,选取了2021年2月20日作为终点
start = datetime.datetime(2020, 2, 20)
end = datetime.datetime(2021, 2, 20)
我们选取了pandas_datareader作为读取数据的工具包,这是一个比较完整的数据读取提供了很详细的数据读取工具,其中包括了yahoo财经的数据,以下为读取数据的接口,以下读取了各个股票的K线数据
tesla = web.DataReader("TSLA",'yahoo',start,end)
Apple = web.DataReader("AAPL",'yahoo',start,end)
disney = web.DataReader("DIS",'yahoo',start,end)
并进行本地化的数据保存
tesla.to_csv('Tesla_Stock.csv')
Apple.to_csv('Apple_Stock.csv')
disney.to_csv('Disney_Stock.csv')
以代表科技&电子行业的苹果公司为例,我们进行数据的可视化展示,如下所示,我们展示了苹果公司每日的最高价,最低价,开盘,收盘,成交量和复权的收盘价信息
Apple.head()
High | Low | Open | Close | Volume | Adj Close | |
---|---|---|---|---|---|---|
Date | ||||||
2020-02-19 | 81.142502 | 80.000000 | 80.000000 | 80.904999 | 93984000.0 | 80.146545 |
2020-02-20 | 81.162498 | 79.552498 | 80.657501 | 80.074997 | 100566000.0 | 79.324333 |
2020-02-21 | 80.112503 | 77.625000 | 79.654999 | 78.262497 | 129554000.0 | 77.528809 |
2020-02-24 | 76.044998 | 72.307503 | 74.315002 | 74.544998 | 222195200.0 | 73.846161 |
2020-02-25 | 75.632500 | 71.532501 | 75.237503 | 72.019997 | 230673600.0 | 71.344841 |
为了便于进一步分析股票价格的变化,我们使用可视化工具matplotlib选取Apple为例进行数据的可视化,从下图可以看出,在2020年3月-2020年5月期间,苹果的股票价格出现了一个比较大的回撤,但是后续在美国政府的一系列政策激励中不断走高,其次伴随着中国疫情的好转,作为苹果公司的重要生产国,苹果公司没有受到严重的影响
import matplotlib.pyplot as plt # Import matplotlib
# This line is necessary for the plot to appear in a Jupyter notebook
%matplotlib inline
# Control the default size of figures in this Jupyter notebook
%pylab inline
pylab.rcParams['figure.figsize'] = (15, 9) # Change the size of plots
Apple["Adj Close"].plot(grid = True) # Plot the adjusted closing price of AAPL
Populating the interactive namespace from numpy and matplotlib
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-d3lCOUwM-1626417736634)(output_13_2.png)]
为了更详细的展示所有的数据情况,我们使用了matplotlib中的finance模块,其中有蜡烛图的工具,可以比较详细的画出k线的变化情况
from mplfinance.original_flavor import candlestick_ohlc
import matplotlib.dates as mpdates
fig, ax = plt.subplots()
Apple['Date'] = Apple.index.map(mpdates.date2num)
df = Apple[['Date','Open', 'High', 'Low', 'Close', 'Volume']]
candlestick_ohlc(ax, df.values, width=.6, colorup = 'red', colordown = 'green', )
([,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,
,