13行代码完成excel合并
写在前面,(一些废话)~~
因为在日常的学习和工作中经常需要完成合并excel表格的工作,而合并excel通
常需要打开n多个excel,这就十分地不友好,所有就用python写了个小脚本,供
自己万一忘了回来看看(我可是真菜...)
该脚本需要使用pandas
- 首先呢把待合并的excel们放到同一个目录下,方便操作(比如下面这样)
- 然后就可以愉快的编码了
import pandas as pd
import os
path = './data' //我的脚本位置是在data文件夹之外的文件夹里,这里可以直接使用绝对路径
//换成你的excel路径
file_list = os.listdir(path)
//os.listdir() 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表
files = [] //报成文件的目录
for name in os.listdir(path):
files.append(os.path.join(os.path.abspath(path), name))
//os.path.join()路径拼接
//os.path.abspath()获得绝对路径
result = [] //保存最后合并的结果
for item in files:
result.append(pd.read_excel(item))
//pd.read_excel()读出来的是dataframe类型的数据
//result 就保存了n个dataframe类型的数据
writer = pd.ExcelWriter(os.path.join(os.path.abspath(path), 'result.xlsx'))
//创建一个excel写入对象writer,后面是文件路径加文件名
pd.concat(result).to_excel(writer, 'sheet1', index=False)
//concat将n个dataframe合并
//to_excel的参数介绍在下面
writer.save()
to_excel()
的参数
DataFrame.to_excel(excel_writer, sheet_name='Sheet1', na_rep='',
float_format=None, columns=None, header=True, index=True,
index_label=None, startrow=0, startcol=0, engine=None, merge_cells=True,
encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
- 合并成功!
上面第三个excel列名应该是a和b,这是我为了截报错的图,改的…
但是请注意,待合并的excel列名要一致,否则会报错 not aligned
严正声明!!13行是代码行数,不包括注释和空行~~