Python错误:“DataFrame”对象没有属性“DataReader”

2024-04-16 10:15:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我从Donadio和Ghosh写的一本名为“学习算法交易”的书中学习,我直接从书中复制并粘贴代码:

from pandas_datareader import data

# Fetch daily data for 4 years, for 7 major currency pairs
TRADING_INSTRAMENT = 'CADUSD=X'
SYMBOLS = ['AUDUSD=X', 'GBPUSD=X', 'CADUSD=X', 'CHFUSD=X', 'EURUSD=X', 'JPNUSD=X', 'NZDUSD=X']
START_DATE = '2014-01-01'
END_DATE = '2018-01-01'

# DataSeries for each currency
symbols_data = {}
for symbol in SYMBOLS:
    SRC_DATA_FILENAME = symbol + '_data.pkl'

    try:
        data = pd.read_pickle(SRC_DATA_FILENAME)
    except FileNotFoundError:
        data = data.DataReader(symbol, 'yahoo', START_DATE, END_DATE)
        data.to_pickle(SRC_DATA_FILENAME)

    symbols_data[symbol] = data

但我得到了这个错误:

Traceback (most recent call last):
  File "C:/Users/cinji/PycharmProjects/LearnAlgorithmicTrading/StatArb.py", line 16, in <module>
    data = pd.read_pickle(SRC_DATA_FILENAME)
  File "C:\Users\cinji\PycharmProjects\LearnAlgorithmicTrading\venv\lib\site-packages\pandas\io\pickle.py", line 170, in read_pickle
    f, fh = get_handle(fp_or_buf, "rb", compression=compression, is_text=False)
  File "C:\Users\cinji\PycharmProjects\LearnAlgorithmicTrading\venv\lib\site-packages\pandas\io\common.py", line 434, in get_handle
    f = open(path_or_buf, mode)
FileNotFoundError: [Errno 2] No such file or directory: 'GBPUSD=X_data.pkl'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:/Users/cinji/PycharmProjects/LearnAlgorithmicTrading/StatArb.py", line 18, in <module>
    data = data.DataReader(symbol, 'yahoo', START_DATE, END_DATE)
  File "C:\Users\cinji\PycharmProjects\LearnAlgorithmicTrading\venv\lib\site-packages\pandas\core\generic.py", line 5274, in __getattr__
    return object.__getattribute__(self, name)
AttributeError: 'DataFrame' object has no attribute 'DataReader'

Process finished with exit code 1

当我运行购买该书时附带的文件时,会产生相同的错误。我在谷歌上搜索并查找解决方案,但没有找到

我还检查了雅虎,以防它更改了货币的符号,但看起来没有做任何更改

任何帮助都会很好

多谢各位


Tags: inpysrcpandasfordatadateline