工作当中免不了遇到需要合并多个文件的情况,excel或者csv等等,如果是小量的,那挨个打开复制粘贴就行了,如果100个呢?如果是每天或者经常需要合并呢?
自从学习了pandas后,我发现用它来合并excel居然很快,多种情况都能自如的完成,代码比VBA还简洁,一起来看下吧!
![0edff0e1455c5ecb2f7fb59e08f56e80.png](https://i-blog.csdnimg.cn/blog_migrate/cb9ee33dcb9be47e08cb209590a50ff1.jpeg)
我们通常遇到的一种合并需求是有多个文件,每个文件又是相同的,就是说每个文件里面都有相同的sheet名,我们需要做的就是把所有相同的sheet名的文件全部复制到一个文件当中,但是我们还有可能遇到其他的合并的场景:
- 多个文件合并每个文件的一个sheet到一个文件中
- 单个文件,合并所有的sheet
- 多个文件,多个sheet需要合并,这也是最复杂的情况
![5bd823a140c2654db39c60c4aa5287a9.png](https://i-blog.csdnimg.cn/blog_migrate/afe2a9344e5ff20bdaaf31fb840d76b2.jpeg)
你是会选择复制粘贴呢还是利用代码实现自动化合并呢?
今天就来看看在pandas的世界里面,这件小事有多简单:
- 需要用到Tkinter,pandas的read_excel,pd.to_excel
场景1:合并到一个sheet:读取多个文件中的某个sheet合并到一个sheet导出一个单独的文件
关键点:
- 需要明确sheet名
- 在多个文件名中建立循环
shname="har_train"print("请选择文件:")root = tk.Tk()root.withdraw()file_path = filedialog.askopenfilenames()file_list=[]for each in file_path: print('正在读取:%s'%each) each=pd.read_excel(each,sheet_name=shname) file_list.append(each)print('正在合并数据,请稍等...')result=pd.concat(file_list)result.to_excel("合并结果.xlsx