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

如何从DataFrame列表中循环生成独立DataFrame,无需手动逐个赋值?

实现方案

首先说明:动态生成独立变量名的做法并不推荐,更建议用字典统一管理所有DataFrame,后续调用、批量处理都会更方便。两种实现方式如下:

方案1:推荐——字典存储(更易维护)

# 生成键为df1、df2...的字典,值对应列表里的DataFrame
df_dict = {f"df{i+1}": df[i] for i in range(len(df))}

# 后续调用示例
print(df_dict["df1"]) # 对应原列表里的第一个DataFrame
print(df_dict["df2"]) # 对应原列表里的第二个DataFrame

这个方案不会污染全局命名空间,批量处理的时候直接遍历字典即可,不需要硬编码变量名。

方案2:直接生成全局独立变量

如果确实需要直接生成df1、df2这类可以直接调用的全局变量,可以借助globals()方法实现:

for i in range(len(df)):
    globals()[f"df{i+1}"] = df[i]

# 执行后就可以直接调用df1、df2...dfn
print(df1)
print(df2)

原代码无法生效的原因

你之前写的代码无法达到预期主要有3个问题:

  • 变量名dfn是固定字符串,不会随着n的数值变化变成df1、df2,每次循环都会覆盖同一个变量
  • counter变量在循环里没有递增,永远停留在初始值0
  • 循环范围写的是range(0,len(df)-1),会漏掉列表最后一个元素,不需要额外减1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 20:54:01