繁体   English   中英

在 GOOGLE COLAB 中运行此 python 代码时,它向我显示错误。 谁能告诉我我做错了什么并分享更正的代码?

[英]On running this python code in GOOGLE COLAB, it showing me error. Can anyone please tell what am i doing wrong and share a corrected code?

import pandas_datareader.data as web import numpy as np import pandas as pd stock = ['AAPL'] data = web.DataReader(stock,data_source="yahoo",start='01/01/2010')['Adj Close'] data.sort_index(inplace=True) returns = data.pct_change() mean_return = returns.mean() return_stdev = returns.std() annualised_return = round(mean_return * 252,2) annualised_stdev = round(return_stdev * np.sqrt(252),2) print ('The annualised mean return of stock {} is {}, ' 'and the annualised volatility is {}').format(stock[0],annualised_return,annualised_stdev)

您通过将其放在右括号之后来调用print函数输出的format print不返回任何内容,因此您实际上是在调用None.format(...) (不存在)。 您应该直接在字符串上调用 format ,如下所示:

print('The annualised mean return of stock {} is {}, and the annualised volatility is {}'.format(stock[0],annualised_return,annualised_stdev))

这是更正后的代码:

import pandas_datareader.data as web

import numpy as np 

import pandas as pd

stock = ['AAPL']

data = web.DataReader(stock,data_source="yahoo",start='01/01/2010')['Adj Close'] 
data.sort_index(inplace=True)

returns = data.pct_change() 

mean_return = returns.mean()

return_stdev = returns.std() 

annualised_return = round(mean_return * 252,2)

annualised_stdev = round(return_stdev * np.sqrt(252),2)

print(f"The annualised mean return of stock {stock[0]} is {annualised_return}, and the annualised volatility is {annualised_stdev}")

所以错误是因为你没有使用 af 字符串。 f 字符串将数据放在方括号之间{}

更多信息请访问: https : //www.geeksforgeeks.org/python-output-formatting/# :~: text=In%20Python%2C%20there%20is%20no%20printf%20%28%29%20function,string %20modulo%20%28or%20sometimes%20even%20 called%20modulus%29%20operator

pandas_datareader 0.10.0 的发行说明确实提到了Yahoo API需要标头的问题,并在此版本 (0.10.0) 中得到了修复。

修复了现在需要标题的雅虎阅读器

因此,如果您的google-colab使用任何低于 0.10.0 的版本,在使用Yahoo API 的.

以下是有关如何在google-colab - jupyter notebook调试问题的一些步骤。
步骤 1:确定已安装的模块pandas_datareader版本。

!pip show pandas_datareader

第二步:如果版本低于0.10.0则升级版本。

!pip install --upgrade pandas_datareader

第 3 步:不要忘记重新启动运行时以加载新库。

Press Runtime->Restart runtime

第 4 步:现在尝试再次运行第 1 步以确定是否安装了最新版本。

!pip show pandas_datareader

我希望安装最新版本,您可以使用@ Aaron在他的回答中提到的更正来运行上面的代码。

注意: ! 在 shell 命令之前是必需的。 尝试通过 IPython 的官方文档了解更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM