正文
解法1
用 Python 循环进行自动合并
闲话少说,直接上代码了。
import pandas as pd
import time
filelist = ['c:/python/aSourseFiles/bi/bi (' + str(i+1) + ').xlsx' for i in range(40)] #需要打开的文件列表,如果要自己运行代码,找一个excel复制40遍再重命名就行了。
start = time.time() #用于计时。
df = pd.read_excel(filelist[-1]) #以最后一个文件为基础进行合并操作
for i in range(39): #将其余39个文件与最后一个合并
df = pd.concat([df, pd.read_excel(filelist[i])])
print(i)
end = time.time()
run_time = end - start
print('本次运行耗时%.02f' %(run_time))
运行结果如下:
PS:我们的 Excel 表一般是附带表头的,合并的时候是从某行开始,例如,我们需要从第二行开始时,只需改为
pd.read_excel(filelist[i])[1:]
,注意 0 才是第一行, 1 是第二行。
这个操作优点是简单易懂,学几天 Python 就可以搞的定( Python 上手确实太太太容易了),适用于表格行数比较少的情况;缺点是比较耗时,如果行数比较多(比如我使用的是 5W 行),上个厕所回来还没运行完。
解法2