如何读取指定路径下所有Excel文件的指定sheet到对应pandas DataFrame
实现指定路径下多Excel文件指定工作表合并到对应DataFrame
需求说明
读取指定路径下所有Excel文件中的2g、3g、4g工作表,将所有2g工作表数据合并存入名为df_2g的pandas DataFrame,3g和4g工作表同理分别存入对应名称的DataFrame。
实现代码
import os import pandas as pd # 指定目标路径 target_path = "你的指定路径" # 初始化三个空DataFrame df_2g = pd.DataFrame() df_3g = pd.DataFrame() df_4g = pd.DataFrame() # 遍历路径下所有Excel文件 for filename in os.listdir(target_path): if filename.endswith(".xlsx") or filename.endswith(".xls"): file_path = os.path.join(target_path, filename) # 读取2g工作表并追加到对应DataFrame try: temp_2g = pd.read_excel(file_path, sheet_name="2g") df_2g = pd.concat([df_2g, temp_2g], ignore_index=True) except Exception as e: print(f"文件{filename}中不存在2g工作表,跳过:{e}") # 读取3g工作表并追加到对应DataFrame try: temp_3g = pd.read_excel(file_path, sheet_name="3g") df_3g = pd.concat([df_3g, temp_3g], ignore_index=True) except Exception as e: print(f"文件{filename}中不存在3g工作表,跳过:{e}") # 读取4g工作表并追加到对应DataFrame try: temp_4g = pd.read_excel(file_path, sheet_name="4g") df_4g = pd.concat([df_4g, temp_4g], ignore_index=True) except Exception as e: print(f"文件{filename}中不存在4g工作表,跳过:{e}") # 查看合并后的DataFrame(可选) print("2g数据合并完成,行数:", len(df_2g)) print("3g数据合并完成,行数:", len(df_3g)) print("4g数据合并完成,行数:", len(df_4g))
关键说明
- 使用
os.listdir遍历目标路径下的所有文件,通过后缀筛选Excel文件 - 用
pd.read_excel指定sheet_name读取对应工作表,捕获异常处理不存在目标工作表的情况 - 利用
pd.concat将多个同类型工作表的数据追加到同一个DataFrame,ignore_index=True重置索引避免重复
参考截图


内容的提问来源于stack exchange,提问作者Jalal Hasain
相关产品推荐
相关产品推荐

