在其他文章中,我演示了如何在Python中使用quandl来查询时间序列数据,例如股票价格。在这篇文章中,我演示了如何从例如雅虎财务,在Python中使用pandas_datareader模块。
在下面的示例中,我导入pandas_datareader并查询2020-01-01至2020-09-29之间的宝洁股票价格数据:
#导入相关模块 import pandas_datareader.data as web import datetime #定义开始和结束日期的日期时间 start_date = datetime.datetime(2020, 1, 1) end_date = datetime.datetime(2020, 9, 29) #从开始日期到结束日期之间的给定时间段导入库存数据,形式为Yahoo Finance df = web.DataReader("PG", "yahoo",start_date, end_date) #显示返回的数据帧头 df.head()
High | Low | Open | Close | Volume | Adj Close | |
---|---|---|---|---|---|---|
Date | ||||||
2020-01-02 | 124.730003 | 122.940002 | 124.500000 | 123.410004 | 8130800.0 | 121.104179 |
2020-01-03 | 123.529999 | 121.860001 | 122.160004 | 122.580002 | 7970500.0 | 120.289688 |
2020-01-06 | 123.190002 | 122.379997 | 122.570000 | 122.750000 | 6674400.0 | 120.456505 |
2020-01-07 | 123.209999 | 121.870003 | 122.879997 | 121.989998 | 7583400.0 | 119.710701 |
2020-01-08 | 123.430000 | 122.000000 | 122.190002 | 122.510002 | 5385100.0 | 120.220985 |
使用matplotlib.pyplot我可以通过例如可视化数据绘制每日收盘价。这是我在以下代码行中所做的:
#导入matplotlib.pyplot import matplotlib.pyplot as plt #创建图 plt.figure(figsize=(17.5,10)) #创建收盘价线图 plt.plot(df.index,df["Close"],color="red") #添加剧情标题 plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22) #添加x轴标签 plt.xlabel("Date",size=16) #添加y轴标签 plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')
在下面的另一个示例中,检索和可视化可追溯到2015年的股价数据:
#再次查询数据 df = web.DataReader("PG", "yahoo",datetime.datetime(2015,1,1), datetime.datetime(2020,9,29)) #创建图 plt.figure(figsize=(17.5,10)) #创建收盘价线图 plt.plot(df.index,df["Close"],color="red") #添加剧情标题 plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22) #添加x轴标签 plt.xlabel("Date",size=16) #添加y轴标签 plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')
最后还有一个可以追溯到2000年的例子:
#再次查询数据 df = web.DataReader("PG", "yahoo",datetime.datetime(2000,1,1), datetime.datetime(2020,9,29)) #创建图 plt.figure(figsize=(17.5,10)) #创建收盘价线图 plt.plot(df.index,df["Close"],color="red") #添加剧情标题 plt.title("Procter & Gamble daily stock closing prices (src: Yahoo)",size=22) #添加x轴标签 plt.xlabel("Date",size=16) #添加y轴标签 plt.ylabel("Closing price [USD]",size=16)
Text(0, 0.5, 'Closing price [USD]')
专业领域为优化和仿真的工业工程师(R,Python,SQL,VBA)
Leave a Reply