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

Python中使用Quandl API循环处理多个DataFrame的方法

如何用循环对多个Quandl获取的DataFrame执行相同数据处理?

嘿,我来帮你搞定这个问题!你遇到的AttributeError是因为代码里犯了个小错误——你把单个DataFrame又塞进了列表里,导致后续调用reset_index()时,操作的对象变成了列表而不是DataFrame,列表当然没有这个方法啦。

先看你原来的问题代码:

dfd = quandl.get("FRED/DEXBZUS")
dfe = quandl.get("ECB/EURBRL")
df=[dfd,dfe]
for i in df:
    df1=[i]  # 这里把单个DataFrame变成了列表!
    df1= df1.reset_index()  # 列表没有reset_index方法,报错就出在这

正确的写法有两种,看你需求选:

方法1:创建新列表存储处理后的结果(推荐,不修改原数据)

import quandl

# 先获取所有需要的DataFrame,放进列表
df_list = [
    quandl.get("FRED/DEXBZUS"),
    quandl.get("ECB/EURBRL")
]

# 初始化空列表存处理后的DataFrame
processed_data = []
for single_df in df_list:
    # 直接对每个DataFrame执行reset_index,然后加入新列表
    cleaned_df = single_df.reset_index()
    processed_data.append(cleaned_df)

# 现在processed_data里就是两个处理好的DataFrame了
# 比如processed_data[0]就是处理后的FRED/DEXBZUS数据

方法2:原地修改原列表(直接覆盖原数据)

如果不需要保留原始的DataFrame,可以直接在原列表上修改:

import quandl

df_list = [
    quandl.get("FRED/DEXBZUS"),
    quandl.get("ECB/EURBRL")
]

# 通过索引遍历,直接替换原列表里的元素
for idx in range(len(df_list)):
    df_list[idx] = df_list[idx].reset_index()

# 现在df_list里的每个元素都是处理好的DataFrame了

核心问题就是别把单个DataFrame包装成列表,直接对循环里拿到的每个DataFrame对象调用处理方法就行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:35:33