如何用Python通过循环读取Excel文件并命名DataFrame?
解决方案
你的代码无法运行有两个原因:一是用f-string生成的只是赋值语句的字符串,并没有实际执行赋值操作;二是代码里的f-string缺少闭合引号,本身存在语法错误。
下面给你两种可行的处理方式:
推荐方案:用字典存储DataFrames(更易管理)
针对多文件场景,用字典统一存储DataFrame是更规范的做法,方便后续调用、遍历,也不会污染全局命名空间。代码如下:
import pandas as pd # 创建空字典,用来存放所有DataFrame dataframes = {} for i in [1, 2]: # 定义字典的键(对应你想要的df1、df2)和文件路径 df_name = f"df{i}" file_path = f"Pref{i}.xlsx" # 读取文件并存入字典 dataframes[df_name] = pd.read_excel(file_path, sheet_name='Sheet2').dropna(axis=0)
后续调用某个DataFrame时,直接通过字典的键获取即可,示例:
# 查看第一个文件对应的DataFrame前几行 print(dataframes['df1'].head())
可选方案:动态创建全局变量(不推荐)
如果一定要生成df1、df2这类独立变量,可以用globals()函数实现,但这种方式容易引发变量名冲突,后续维护也麻烦,仅作参考:
import pandas as pd for i in [1, 2]: # 生成变量名 var_name = f"df{i}" # 动态创建全局变量并赋值 globals()[var_name] = pd.read_excel(f"Pref{i}.xlsx", sheet_name='Sheet2').dropna(axis=0)
执行后你就可以直接使用df1、df2这些变量了。
内容的提问来源于stack exchange,提问作者Hiroki
相关产品推荐
相关产品推荐

