这些是我导入的库
import math
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas_datareader as web
import datetime as dt
import yfinance as yf
from sklearn.preprocessing import MinMaxScaler
from tensorflow.python.keras.models import Sequential
from tensorflow.python.keras.layers import Dense, Dropout, LSTM
这些是发生错误的行
# load Data
company = 'fb'
start = dt.datetime(2012, 1, 1)
end = dt.datetime(2020, 1, 1)
df = yf.download(tickers=['^GSPC'], start=start, end=end)
data = web.DataReader(company, 'yahoo', start, end)
这些是我收到的错误列表:
C:\ProgramData\Anaconda3\envs\pythonProject\python.exe F:\pythonProject\main.py
[*********************100%***********************] 1 of 1 completed
Traceback (most recent call last):
File "F:\pythonProject\main.py", line 19, in <module>
data = web.DataReader(company, 'yahoo', start, end)
File "C:\Users\Deepanshu\AppData\Roaming\Python\Python310\site-packages\pandas\util\_decorators.py", line 211, in wrapper
return func(*args, **kwargs)`your text`
File "C:\ProgramData\Anaconda3\envs\pythonProject\lib\site-packages\pandas_datareader\data.py", line 379, in DataReader
).read()
File "C:\ProgramData\Anaconda3\envs\pythonProject\lib\site-packages\pandas_datareader\base.py", line 253, in read
df = self._read_one_data(self.url, params=self._get_params(self.symbols))
File "C:\ProgramData\Anaconda3\envs\pythonProject\lib\site-packages\pandas_datareader\yahoo\daily.py", line 153, in _read_one_data
data = j["context"]["dispatcher"]["stores"]["HistoricalPriceStore"]
TypeError: string indices must be integers
Process finished with exit code 1
这是我编写的预测股票价格的程序。我正在 pycharm IDE 中编写这个程序。我添加了 yfinance 库,但每次运行时都会遇到相同的错误。
我希望它对你有用。请添加 yf.pdr_override() 来解决问题,fb 是元
import math
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import pandas_datareader.data as web
import datetime as dt
import yfinance as yf
yf.pdr_override() # add this
df = yf.download(tickers=['^GSPC'], start="2017-01-01", end="2017-04-30")
# fb is meta
data = web.DataReader('META', start = dt.datetime(2012, 1, 1), end = dt.datetime(2020, 1, 1))
print(df.head(5))
print("=================================")
print(data.head(5))
print()