如何从字典中批量生成多个DataFrame?
实现方法
方法一:通过globals()生成全局DataFrame变量
Python的globals()函数会返回当前全局命名空间的字典,我们可以直接将字典的键作为变量名、对应值作为DataFrame存入这个字典,从而生成全局变量:
import pandas as pd # 示例字典(替换为你的实际字典) df_dict = {"df_text": pd.DataFrame({'col1': [1, 2]}), "df_logo": pd.DataFrame({'col2': [3, 4]}), "df_person": pd.DataFrame({'col3': [5, 6]})} # 循环生成全局变量 for var_name, df in df_dict.items(): globals()[var_name] = df # 验证生成结果 print(df_text) print(df_logo)
方法二:局部作用域内用locals()生成变量
如果是在函数等局部环境中操作,使用locals()获取当前局部命名空间的字典,操作逻辑和globals()一致:
import pandas as pd def create_local_dfs(): df_dict = {"df_text": pd.DataFrame({'col1': [1, 2]}), "df_logo": pd.DataFrame({'col2': [3, 4]}), "df_person": pd.DataFrame({'col3': [5, 6]})} for var_name, df in df_dict.items(): locals()[var_name] = df # 局部环境内可直接调用生成的变量 print(df_person) create_local_dfs()
注意事项
- 不推荐使用
exec()函数实现(如exec(f"{var_name} = df")),这种写法存在代码注入风险,当字典键不可控时会引发安全问题。 - 若字典规模极大,生成大量独立变量会导致命名空间混乱,建议优先直接通过原字典访问DataFrame(如
df_dict["df_text"]),更便于维护。
内容的提问来源于stack exchange,提问作者sam_sam
相关产品推荐
相关产品推荐

