如何修改读取多Excel文件的代码,将生成的DataFrame命名为df1、df2…dfN格式
嘿,这个需求挺实用的,我来给你两种解决方案——一种是更推荐的规范做法,另一种是完全贴合你要的df1、df2命名方式的实现:
推荐方案:用列表存储(更易管理)
其实比起单独创建df1、df2这类零散变量,用列表统一存储DataFrames会更方便后续批量操作(比如循环处理所有表格),代码调整起来也很简单:
import glob import pandas as pd # 创建一个空列表来存放所有DataFrame df_list = [] for filename in glob.glob('*.xlsx'): # 读取每个Excel的指定sheet,添加到列表中 df = pd.read_excel(filename, sheet_name='Bilan') df_list.append(df)
之后你可以通过索引访问对应的表格:df_list[0]是第一个文件的DataFrame,df_list[1]是第二个,以此类推。如果需要批量处理,直接遍历df_list就行,比单独操作df1、df2高效多了。
贴合需求:动态创建df1、df2等变量
如果你确实需要生成df1、df2这类独立变量名,可以通过Python的globals()函数动态往全局命名空间添加变量,代码如下:
import glob import pandas as pd # 用enumerate给每个文件分配序号,从1开始计数 for idx, filename in enumerate(glob.glob('*.xlsx'), start=1): # 生成对应的变量名,比如df1、df2 df_name = f'df{idx}' # 把读取的DataFrame赋值给这个变量名 globals()[df_name] = pd.read_excel(filename, sheet_name='Bilan')
运行这段代码后,你的环境里就会出现df1、df2...dfN这些变量,每个对应一个Excel文件的DataFrame。不过要提醒下:这种方式会让变量分散在全局空间,文件多的时候不好管理,后续批量操作也很麻烦,所以除非有特殊需求,还是更推荐列表的方式。
内容的提问来源于stack exchange,提问作者RandallCloud
相关产品推荐
相关产品推荐

