将一个文件夹里的多个文件读取,并合并。
这里要用到os库的walk和path功能。
举例:
一个文件夹内有2个或多个excel,名字没有明显的规律。
excel具有相同的列名,想要将他们纵向合并起来,用append函数。(若想横向合并,只要用concat函数替换这里的就行了,但是注意要用相同的行名/行索引。)
结果显示如下:
具体步骤如下:
'''导入pandas库和os库'''
import pandas as pd
import os
'''定义一个空DataFrame对象,用于添加每个excel中的内容,注意列名一致'''
df_empty=pd.DataFrame(columns=['地区','时间','数量','等级'])
'''定义文件夹的路径'''
file_directory =r'C:\Users\whw\Desktop\汇总'
# root为起始路径,dirs为起始路径下的文件夹,files是起始路径下的文件。
'''利用os库的walk功能遍历文件夹里的所有文件,并读取文件名字'''
for root, dirs, files in os.walk(file_directory):
for file in files:
'''os.path.join能够将文件夹的路径和文件名字合并成每个文件的完整路径'''
file_path = os.path.join(root, file)
rd=pd.read_excel(file_path,"Sheet1",header=0)
df_empty=df_empty.append(rd,ignore_index=True)
df_empty.to_excel(r'C:\Users\whw\Desktop\总体汇总.xlsx', encoding='gbk')
注意:代码运行时,请先确保你的excel文件是没有打开的。否则就会有隐藏的缓存文件