python - 为每个股票数据框使用 for 循环创建累积回报列时出错
问题描述
我得到了五只股票的历史价格,并想为每只股票创建一个累积回报列,我尝试使用 for 循环。但它返回了“TypeError: 'Ticker' object is not subscriptable”的错误
msft = yf.Ticker("MSFT")
apple=yf.Ticker("AAPL")
amzn=yf.Ticker("AMZN")
alibaba=yf.Ticker("BABA")
Tencents=yf.Ticker("TCEHY")
baba=alibaba.history(period="ytd")
msft=msft.history(period="ytd")
apple=apple.history(period="ytd")
Tencents=Tencents.history(period="ytd")
amzn=amzn.history(period="ytd")
for stock_df in (msft,apple,amzn,alibaba,Tencents):
stock_df["cum-return"]=stock_df["Close"]/stock_df["Close"].iloc[0]
谁能帮我解决这个问题。谢谢
解决方案
在数组中,您正在迭代alibaba
,它的类型是yf.Ticker
,您应该将其替换为baba
,因为baba
是DataFrame
。
Not subscriptable
表示您正在尝试对无法切片的元素进行切片,例如stock_df['cum-return]
,yf.Ticker
不支持切片。
推荐阅读
- css - 当我使用 col-* 并占据全宽时,引导程序没有响应,尽管它在大屏幕上工作?
- javascript - 使用javascript更改子元素的innerHTML
- jenkins - Jenkins 插件开发 - 如何检查插件是否在 Jenkins Master 上执行
- grails - grails 3.x中grails 2.x的Config.groovy对应的神器是什么?
- regex - 多个正则表达式匹配不是 Haskell 中的 [String]
- python - 对特定列 python 取每一行的正弦值
- python - 如何通过登录 Seaborn 等量缩放 x 和 y 轴?
- c# - 正则表达式模式不在 c# 中工作,但在在线正则表达式测试器中工作
- .htaccess - .htaccess 将 example.com 重定向到 example.com/admin_panel
- html - CSS 边框半径仅围绕模态 div 窗口的一个角