Pandas_datareader用于Python中的Yahoo股票价格查询

在其他文章中,我演示了如何在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()
HighLowOpenCloseVolumeAdj Close
Date
2020-01-02124.730003122.940002124.500000123.4100048130800.0121.104179
2020-01-03123.529999121.860001122.160004122.5800027970500.0120.289688
2020-01-06123.190002122.379997122.570000122.7500006674400.0120.456505
2020-01-07123.209999121.870003122.879997121.9899987583400.0119.710701
2020-01-08123.430000122.000000122.190002122.5100025385100.0120.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]')

Leave a Reply

发表回复

您的电子邮箱地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

Close

其他操作