pandas如何遍历文件夹中所有文件
时间: 2024-01-30 08:02:52 浏览: 226
python遍历文件夹下所有excel文件
5星 · 资源好评率100%
使用pandas库遍历文件夹中所有文件的步骤如下:
1. 导入pandas库
2. 创建一个空的DataFrame,用于存储所有读取的数据
3. 使用os.walk()函数遍历文件夹及其子文件夹
4. 对于每个文件,判断是否为Excel文件(以.xlsx为后缀)
5. 如果是Excel文件,则使用pd.read_excel()函数读取该文件的所有sheet页的数据,并将数据存储到一个DataFrame中
6. 在读取每个sheet页的数据时,可以使用pd.read_excel()函数的sheet_name参数来指定读取的sheet页,也可以使用pd.read_excel()函数的sheet_name参数的默认值None来读取所有sheet页的数据
7. 在读取每个文件的数据后,可以为DataFrame新增两列,用于记录数据所属的Excel文件名和sheet页名
8. 将每个文件的数据存储到之前创建的空DataFrame中,使用pd.concat()函数进行合并
9. 最终得到的DataFrame中包含了所有文件夹中所有Excel文件的所有sheet页的数据
代码示例:
```
import pandas as pd
import os
dfs = pd.DataFrame() # 创建一个空的DataFrame
# 使用os.walk()函数遍历文件夹及其子文件夹
for root_dir, sub_dir, files in os.walk(r"E:\202009\源数据"):
for file in files:
if file.endswith(".xlsx"): # 判断是否为Excel文件
file_name = os.path.join(root_dir, file) # 构造绝对路径
for sheet in pd.read_excel(file_name, sheet_name=None).keys(): # 读取所有sheet页的数据
df = pd.read_excel(file_name, sheet_name=sheet) # 读取数据
excel_name = file.replace(".xlsx", "") # 获取Excel文件名
df["excel_name"] = excel_name # 新增一列,记录数据所属的Excel文件名
df["sheet_name"] = sheet # 新增一列,记录数据所属的sheet页名
dfs = pd.concat([dfs, df]) # 将数据存储到之前创建的空DataFrame中
# 最终得到的dfs中包含了所有文件夹中所有Excel文件的所有sheet页的数据
```
阅读全文