如何在Python的for循环中批量处理命名DataFrame生成对应结果
批量处理多个DataFrame的正确方式
直接通过变量名拼接(比如dfi、resulti)的写法在Python里是行不通的,推荐用字典来管理这些DataFrame和结果,既清晰又便于维护:
步骤1:把所有DataFrame存入字典
先把df1到df10整理到一个字典中,避免零散的变量:
# 手动把所有DataFrame放进字典 dfs = { "df1": df1, "df2": df2, ... "df10": df10 } # 或者利用命名规律用循环简化(前提是df1到df10已定义) dfs = {f"df{i}": globals()[f"df{i}"] for i in range(1, 11)}
步骤2:批量处理并存储结果
遍历字典,对每个DataFrame应用函数,结果存入另一个字典:
results = {} for name, df in dfs.items(): # 生成对应结果的键名,比如"df1"对应"result1" result_name = name.replace("df", "result") results[result_name] = defined_function(df)
之后你可以通过results["result1"]、results["result2"]来访问对应的处理结果,比零散的独立变量更易维护。
(不推荐)如果一定要生成单独的变量
如果你确实需要创建result1到result10这样的独立变量,可以用globals()动态赋值,但这种方式会降低代码可读性,不建议在正式代码中使用:
for i in range(1, 11): df = globals()[f"df{i}"] globals()[f"result{i}"] = defined_function(df)
内容的提问来源于stack exchange,提问作者lily_kim
相关产品推荐
相关产品推荐

