工作中,我们时常遇到多个数据格式相同的文件,想把它们汇总到一个表中。
例:在’D:\data\数据处理\合并文件‘目录下,有3个数据文件分别为’1.xlsx’, ‘2.xlsx’, ‘3.xlsx’,其里面的表头一样,这时候我们想把他汇总到一个表中。
1.获取文件名
首先,输入数据存在的路径用以获取该路径下的全部文件。
path = 'D:\data\数据处理\合并文件'
files = os.listdir(path)
输出files,可以见到在此路径下的所有文件。
2.读取第一个数据文件
之后,读取第一个文件出来,用以作为合并的头个文件。
pd1 = pd.read_excel(path + '\\' + files[0])
pd1输出:
3.遍历剩下文件合并
然后, 遍历剩下的文件,一个一个跟前面合并。
for i in range(1,len(files)):
pd2 = pd.read_excel(path + '\\' + files[i])
pd1 = pd.concat([pd1,pd2])
合并后的pd1输出为:
4.生成数据文件
最后,生成数据文件,index为数据的索引,一般生成的数据文件不需要列出,因此这里设为’index=None’。
pd1.to_excel('D:\data\数据处理\合并文件\huizong.xlsx',index=None)
可以看到,这里生成了一个huizong.xlsx文件。
打开此文件,可以看到已经将三个表的数据汇总在一个表中。
完整代码
import os
import pandas as pd
# 数据存在的路径
path = 'D:\data\数据处理\合并文件'
# 获取路径下的全部文件
files = os.listdir(path)
# 读取第一个文件出来,用以作为合并的头文件
# 这里的'\\',第一个为转义符,'\\'会转义成反斜杠,即'\'
pd1 = pd.read_excel(path + '\\' + files[0])
# 遍历剩下的文件,并合并
for i in range(1,len(files)):
pd2 = pd.read_excel(path + '\\' + files[i])
pd1 = pd.concat([pd1,pd2])
# 生成数据文件,index为数据的索引,一般生成的数据文件不需要列出,因此这里设为'index=None'
pd1.to_excel('D:\data\数据处理\合并文件\huizong.xlsx',index=None)