我试图在几个股票符号之间做一个简单的关联。我以前也运行过同样的代码,它很有效。现在,它返回一个异常,该异常引用了一堆文件,并包含我不理解的其他消息。此外,必须在控制台中手动停止该命令。一般来说,我对python和编程非常陌生。我用的是spyder 5.0.3和anaconda3。我尝试重新安装spyder并更新了使用的软件包,但都没有解决问题。
问题似乎出在yfinance软件包上。当我试图下载单个股票的价格数据时,返回了一个类似的异常。它看起来不像pandas或numpy,因为我能够创建一个小 Dataframe 并毫无问题地运行corrcoff()。值得一提的是,我使用了以下代码:
import pandas as pd
import numpy as np
d = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data=d)
r = np.corrcoef(df)
以下是以前工作但不再工作的代码:
import pandas as pd
import numpy as np
import yfinance as yf
AAPL = yf.download('AAPL', period='32D', interval='1D')
MSFT = yf.download('MSFT', period='32D', interval='1D')
NVDA = yf.download('NVDA', period='32D', interval='1D')
corr3 = pd.DataFrame([AAPL['Close'],
MSFT['Close'],
NVDA['Close']])
r = np.corrcoef(corr3)
运行该文件时,控制台中会出现以下异常:
Exception in thread Thread-10:
Traceback (most recent call last):
File "C:\Users\jdejo\anaconda3\lib\threading.py", line 932, in _bootstrap_inner
self.run()
File "C:\Users\jdejo\anaconda3\lib\threading.py", line 870, in run
self._target(*self._args,**self._kwargs)
File "C:\Users\jdejo\anaconda3\lib\site-packages\multitasking\__init__.py", line 102, in _run_via_pool
return callee(*args,**kwargs)
File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\multi.py", line 167, in _download_one_threaded
data = _download_one(ticker, start, end, auto_adjust, back_adjust,
File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\multi.py", line 179, in _download_one
return Ticker(ticker).history(period=period, interval=interval,
File "C:\Users\jdejo\anaconda3\lib\site-packages\yfinance\base.py", line 157, in history
data = data.json()
File "C:\Users\jdejo\anaconda3\lib\site-packages\requests\models.py", line 900, in json
return complexjson.loads(self.text,**kwargs)
File "C:\Users\jdejo\anaconda3\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Users\jdejo\anaconda3\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Users\jdejo\anaconda3\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
我想知道我的代码出了什么问题。它过去有用,现在不行了。任何指导都将不胜感激。
1条答案
按热度按时间vsmadaxz1#
我已经解决了这个问题。我需要通过spyder中的控制台更新yfinance。我一直在使用命令提示符更新软件包。