利用Python读取多份Excel的小技巧

在使用 python 批量处理 excel 时经常需要批量读取数据,常见的方式是结合glob模块,可以实现将当前文件夹下的所有csv批量读取,并且合并到一个大的dataframe中
df_list = []for file in glob.glob(*.csv): df_list.append(pd.read_excel(file))df = pd.concat(df_list)  
但是这样要求读取的每一个csv文件格式、列名都是一样的。
如果想要将每一个csv独立的进行读取,可以使用 os 模块来循环遍历当前文件夹中的 csv 文件,然后使用 pandas 的 read_csv 函数来读取每个文件
import osimport pandas as pddf_list = []for file in os.listdir(): if file.endswith(.csv): df_list.append(pd.read_csv(file))  
现在,df_list 中的每个元素都是一个 dataframe,但是这样依旧不够完美,调用的时候依旧需要手动从列表中提取。
那如何自动读取当前文件夹下全部csv数据,并将每个csv赋给不同的变量
可以使用python中的globals() 函数,它返回一个字典,其中包含当前程序的所有全局变量,例如我们可以使用如下语法来为字典中的某个键赋值:
globals()[key] = value  
所以,使用下面的代码可以实现自动读取当前文件夹下全部csv数据,并将每个csv赋给不同的变量
df_list = []for i, file in enumerate(os.listdir()): if file.endswith(.csv): df_list.append(pd.read_csv(file))for i, df in enumerate(df_list): globals()[f'df{i+1}'] = df  
当然,类似的方法还可以应用于读取excel的不同sheet,例如假设data.xlsx有10个sheet
df_list = [pd.read_excel(data.xlsx, sheet_name=i) for i in range(10)]for i, df in enumerate(df_list): globals()[fdf{i+1}] = df  
如果你不清楚数据有多少sheet,也可以使用 sheet_name=none,然后根据返回的字典自动读取
df_list = pd.read_excel(data.xlsx, sheet_name=none)for i, (name, df) in enumerate(df_list.items()): globals()[fdf_{name}] = df


STM32学了还是不会做项目?
寒武纪1A处理器可跟苹果产品一较高下 保留“火种”是关键
移动设备发展推进,电源采用单颗电池芯成趋势
区块链的主要挑战是什么
Huawei在P40Pro在线推出活动期间推出了新的智能助手
利用Python读取多份Excel的小技巧
海泰信创浏览器安全解决方案 全面适配安全可靠
智能电视为什么如何受欢迎?
Cadence加强其Tensilica Vision和AI软件合作伙伴生态
零线滤波器为企业用电现场带来了这些好处!
“燃气行业NB-IoT应用论坛”多企业提及OTA,看艾拉比如何支招
无纺布污点检测仪检测的原理、参数及配置
专注于建筑市场人工智能的最新行业报告
360度全景让你在虚拟场景中有着最真实的体验
反制日本! SK海力士欲收购Intel大连工厂
分辨率P、K具有什么作用
Python随机数模块的随机函数使用
边缘计算网关助力城乡供水一体化监测与运维
汽车EMC的标准分类和主要标准及特点
生态环境实验室土壤检测仪器的产品特点