You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Yahoo Finance数据处理中的TypeError: string indices must be integers问题

解决计算日移动平均时的TypeError错误

构建机器学习模型过程中,从Yahoo Finance获取CSV格式数据后,计算日移动平均时触发TypeError错误。

错误代码

ma_day = [10,30,50]
for ma in ma_day:
    for df in df:
        Moving_Average = f"MA for {ma} days"
        df[Moving_Average] = df['Adj Close'].rolling(ma).mean()

报错信息

--------------------------------------------------------------------------- TypeError                                 Traceback (most recent call last) /var/folders/m_/7qrjlgz130q_m51m48k7h0w80000gn/T/ipykernel_1389/3705405762.py in <module>
      6     for df in df:
      7         Moving_Average = f"MA for {ma} days"
----> 8         df[Moving_Average] = df['Adj Close'].rolling(ma).mean()

TypeError: string indices must be integers

错误原因

内层循环for df in df会将DataFrame遍历为列名字符串,导致循环内的df变量变为字符串类型,无法使用df['Adj Close']这类字符串索引操作(字符串的索引必须是整数)。

修正后的代码

ma_day = [10,30,50]
for ma in ma_day:
    Moving_Average = f"MA for {ma} days"
    df[Moving_Average] = df['Adj Close'].rolling(ma).mean()

内容的提问来源于stack exchange,提问作者Prachik

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 21:50:23