Python 由于大Sur,datetime pandas中出现关键错误?
我刚刚升级了Big Sur 11.0.1,在尝试执行笔记本时遇到了一些问题。奇怪,因为它对卡塔琳娜有效。有人能帮忙吗Python 由于大Sur,datetime pandas中出现关键错误?,python,pandas,dataframe,macos-big-sur,yfinance,Python,Pandas,Dataframe,Macos Big Sur,Yfinance,我刚刚升级了Big Sur 11.0.1,在尝试执行笔记本时遇到了一些问题。奇怪,因为它对卡塔琳娜有效。有人能帮忙吗 import numpy as np import pandas as pd import yfinance as yf # In[56]: #parameters RISKY_ASSET = 'ADBE' START_DATE = '2017-01-01' END_DATE = '2020-07-31' # In[57]: #Download data: df
import numpy as np
import pandas as pd
import yfinance as yf
# In[56]:
#parameters
RISKY_ASSET = 'ADBE'
START_DATE = '2017-01-01'
END_DATE = '2020-07-31'
# In[57]:
#Download data:
df = yf.download(RISKY_ASSET, start=START_DATE, end=END_DATE, adjusted=True)
# In[58]:
#daily return
adj_close = df['Adj Close']
returns = adj_close.pct_change().dropna()
print(f'Average return: {100 * returns.mean():.2f}%')
returns.plot(title=f'{RISKY_ASSET} returns: {START_DATE} - {END_DATE}')
# In[59]:
#Split the data into training and test sets:
train = returns['2017-01-01':'2020-06-30']
test = returns['2020-07-01':'2020-07-31']
# In[60]:
#parameters of the simulation:
T = len(test)
N = len(test)
S_0 = adj_close[train.index[-1].date()]
N_SIM = 1000
mu = train.mean()
sigma = train.std()
错误:
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-7-9316c025c623> in <module>
2 T = len(test)
3 N = len(test)
----> 4 S_0 = adj_close[train.index[-1].date()]
5 N_SIM = 1000
6 mu = train.mean()
~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/series.py in __getitem__(self, key)
880
881 elif key_is_scalar:
--> 882 return self._get_value(key)
883
884 if is_hashable(key):
~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/series.py in _get_value(self, label, takeable)
987
988 # Similar to Index.get_value, but we do not fall back to positional
--> 989 loc = self.index.get_loc(label)
990 return self.index._get_values_for_loc(self, loc, label)
991
~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexes/datetimes.py in get_loc(self, key, method, tolerance)
620 else:
621 # unrecognized type
--> 622 raise KeyError(key)
623
624 try:
KeyError: datetime.date(2019, 12, 31) ```
---------------------------------------------------------------------------
KeyError回溯(最近一次呼叫最后一次)
在里面
2 T=透镜(测试)
3 N=透镜(测试)
---->4 S_0=调整关闭[列车索引[-1]。日期()
5 N_SIM=1000
6亩=列车平均值()
~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/series.py in\uuuuu getitem\uuuuuu(self,key)
880
881 elif键是标量:
-->882返回自我。获取值(键)
883
884如果可散列(键):
~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/series.py in\u get\u值(self、label、takeable)
987
988#类似于Index.get_值,但我们不会退回到位置
-->989 loc=自索引获取位置(标签)
990返回self.index.\u获取\u loc(self,loc,label)的\u值\u
991
get_loc中的~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/index/datetimes.py(self、key、method、tolerance)
620其他:
621#无法识别的类型
-->622升起钥匙错误(钥匙)
623
624尝试:
KeyError:datetime.date(2019年12月31日)```
问题实际上是由于my Pandas的版本造成的。我已经把它降级到1.0.5,一切正常!
在命令终端中:
pip install pandas==1.0.5
下面是代码:将代码添加到问题中。我将代码放在下面。下次按“编辑”编辑问题。现在我在你的问题中添加了你的代码。你能删除下面的答案吗?我试过了,但我的帖子似乎包含了太多的代码,所以我把它放在下面。谢谢你,伙计!