使用 pandas DataReader 获取 "Adj Close"
Get "Adj Close" using pandas DataReader
我刚刚从 pandas.io 切换到 pandas_datareader,但我在提取调整后的收盘价时遇到了困难。在我可以使用以下代码之前
pd.io.data.get_data_yahoo(stock, start, end)['Adj Close']
现在,当我尝试使用数据读取器(作为网络导入)时,它不起作用。
web.get_data_yahoo(stock, start, end)['Adj Close']
我试图查找文档以查看是否有 pandas_datareader 使用的新参数,但我没有找到任何运气。无论如何,是否可以使用新的 pandas 库来获取 Adjusted Close 数据?
我会为此使用 DataReader:
In [61]: from pandas_datareader.data import DataReader
In [62]: DataReader('AAPL', 'yahoo', '2016-06-25', '2016-06-30')['Adj Close']
Out[62]:
Date
2016-06-27 92.040001
2016-06-28 93.589996
2016-06-29 94.400002
Name: Adj Close, dtype: float64
实际上您的代码也能正常工作(pandas 0.18.1 和 pandas_datareader 0.2.1):
In [63]: import pandas_datareader.data as web
In [64]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')
Out[64]:
Open High Low Close Volume Adj Close
Date
2016-06-27 93.000000 93.050003 91.500000 92.040001 45489600 92.040001
2016-06-28 92.900002 93.660004 92.139999 93.589996 39311500 93.589996
2016-06-29 93.970001 94.550003 93.629997 94.400002 36427800 94.400002
In [65]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')['Adj Close']
Out[65]:
Date
2016-06-27 92.040001
2016-06-28 93.589996
2016-06-29 94.400002
Name: Adj Close, dtype: float64
此解决方案不再可行。当我 运行:
import pandas_datareader.data as web
web.get_data_yahoo('AAPL')
这产生:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='ichart.finance.yahoo.com', port=80): Max retries exceeded with url: /table.csv?a=0&ignore=.csv&s=AAPL&b=1&e=7&d=6&g=d&f=2017&c=2010 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))
看来 Quanld 可以提供更好的
从 Yahoo 读取时出现问题。如果可以,请改用 Google。例如:
df = web.DataReader("AAPL", 'google', start, end)
试试这个:
从 pandas_datareader 导入 get_data_yahoo 作为 gy
X = gy('AAPL','2019-01-01','2019-03-15')['Adj Close']
print(X.head())
我刚刚从 pandas.io 切换到 pandas_datareader,但我在提取调整后的收盘价时遇到了困难。在我可以使用以下代码之前
pd.io.data.get_data_yahoo(stock, start, end)['Adj Close']
现在,当我尝试使用数据读取器(作为网络导入)时,它不起作用。
web.get_data_yahoo(stock, start, end)['Adj Close']
我试图查找文档以查看是否有 pandas_datareader 使用的新参数,但我没有找到任何运气。无论如何,是否可以使用新的 pandas 库来获取 Adjusted Close 数据?
我会为此使用 DataReader:
In [61]: from pandas_datareader.data import DataReader
In [62]: DataReader('AAPL', 'yahoo', '2016-06-25', '2016-06-30')['Adj Close']
Out[62]:
Date
2016-06-27 92.040001
2016-06-28 93.589996
2016-06-29 94.400002
Name: Adj Close, dtype: float64
实际上您的代码也能正常工作(pandas 0.18.1 和 pandas_datareader 0.2.1):
In [63]: import pandas_datareader.data as web
In [64]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')
Out[64]:
Open High Low Close Volume Adj Close
Date
2016-06-27 93.000000 93.050003 91.500000 92.040001 45489600 92.040001
2016-06-28 92.900002 93.660004 92.139999 93.589996 39311500 93.589996
2016-06-29 93.970001 94.550003 93.629997 94.400002 36427800 94.400002
In [65]: web.get_data_yahoo('AAPL', '2016-06-25', '2016-06-30')['Adj Close']
Out[65]:
Date
2016-06-27 92.040001
2016-06-28 93.589996
2016-06-29 94.400002
Name: Adj Close, dtype: float64
此解决方案不再可行。当我 运行:
import pandas_datareader.data as web
web.get_data_yahoo('AAPL')
这产生:
requests.exceptions.ConnectionError: HTTPConnectionPool(host='ichart.finance.yahoo.com', port=80): Max retries exceeded with url: /table.csv?a=0&ignore=.csv&s=AAPL&b=1&e=7&d=6&g=d&f=2017&c=2010 (Caused by NewConnectionError(': Failed to establish a new connection: [Errno 8] nodename nor servname provided, or not known',))
看来 Quanld 可以提供更好的
从 Yahoo 读取时出现问题。如果可以,请改用 Google。例如:
df = web.DataReader("AAPL", 'google', start, end)
试试这个:
从 pandas_datareader 导入 get_data_yahoo 作为 gy
X = gy('AAPL','2019-01-01','2019-03-15')['Adj Close']
print(X.head())