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

如何基于DataFrame列表动态命名DataFrame对象

动态命名DataFrame子集的方案

不用手动编写first_frame = output[1]这类代码,最稳妥且易维护的方式是用字典来存储各个DataFrame子集,将int_dict的键作为每个子集的标识名称,完美替代列表的无差别存储。

修正后的代码(同时修复原代码的语法错误)

# 用字典存储,键对应int_dict的键,值为对应的DataFrame子集
output_dict = {}
for key in int_dict.keys():
    # 修复原代码的括号配对错误、key()拼写错误,用f-string简化字符串拼接
    product_subset = df.loc[
        (df[f"{key} pct_change"] > 90) & 
        (df[key] > 50)
    ]
    output_dict[key] = product_subset

# 合并所有子集的逻辑保留
standouts = pd.concat(output_dict.values()).reset_index(drop=True)

访问单个子集的方式

现在可以直接通过int_dict的键快速获取对应的DataFrame,比如:

# 假设int_dict包含键'product_x'
product_x_df = output_dict['product_x']

关于动态创建独立变量的说明

如果非要把每个子集变成单独的全局/局部变量,可借助globals()或locals()实现,但这种方式不推荐:

  • 极易与现有变量重名,导致意外覆盖
  • 代码可读性差,后续维护难以追踪这些动态变量
  • 调试时无法直观看到变量列表

示例(仅作演示,不建议使用):

idx = 0
for key in int_dict.keys():
    product_subset = df.loc[
        (df[f"{key} pct_change"] > 90) & 
        (df[key] > 50)
    ]
    # 动态生成变量名,如product_0、product_1...
    globals()[f"product_{idx}"] = product_subset
    idx += 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 05:15:31