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

如何创建名称包含用户输入的输出DataFrame?

动态命名包含用户输入的DataFrame的实现方法

当然可行,但不建议直接创建动态命名的变量——这会让代码难以维护,还容易引发命名冲突。更稳妥的方式是用字典存储这些DataFrame,既能实现“动态命名”的需求,又方便管理。

推荐方案:用字典存储DataFrame

把DataFrame作为值存入字典,用你想要的动态字符串作为键,后续分析时通过键就能快速定位对应的DataFrame:

start_year = int(input("Enter a start year:"))
end_year = int(input("Enter an end year:"))
selected_jur = input("Enter a jurisdiction number to search for: ")
df_list=[]
df_dict ={}

# 假设这里已完成数据过滤,得到combined_df
# ...(你的数据处理代码)

# 生成动态键名
df_key = f"combined_df_for_{selected_jur}_from_{start_year}_to_{end_year}"
# 将DataFrame存入字典
df_dict[df_key] = combined_df

# 后续调用示例
print(f"Combined dataframe of {selected_jur} from {start_year} to {end_year}:")
print(df_dict[df_key])

这种方法的优势在于:所有动态生成的DataFrame都集中在字典中,方便遍历、查找,不会污染全局变量空间。

不推荐方案:动态创建全局变量

如果非要直接生成以动态字符串命名的变量,可以用globals()函数实现,但强烈不建议在生产代码中这么做:

# 生成动态变量名
df_name = f"combined_df_for_{selected_jur}_from_{start_year}_to_{end_year}"
# 将DataFrame赋值给全局变量
globals()[df_name] = combined_df

# 后续调用示例
print(f"Combined dataframe of {selected_jur} from {start_year} to {end_year}:")
print(globals()[df_name])

这种方式的问题很明显:变量名是动态生成的,IDE无法自动补全,代码可读性差,还可能不小心覆盖已有全局变量,导致难以排查的bug。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 09:12:06