pandas合并excel的多个sheet

您所在的位置:网站首页 将俩个工作表合并 pandas合并excel的多个sheet

pandas合并excel的多个sheet

2024-07-05 01:15| 来源: 网络整理| 查看: 265

表格内容如下:

现在要做的是,把6个sheet合并成一个表格。

1.excel合并工作表

首先,探讨一下直接用excel来解决这个问题,在excel2016及以后的版本中,有一个强大的PowerQuery查询:

选择文件后:

 点“编辑”以后,大概如下:

 网上有些人的版本中有“将查询追加为新查询”这个功能,但是我的excel2016中没有这个选项,只能点击“追加查询"这个功能:

 上图的意思是将sheet2追加到sheet1中去,追加后sheet1的内容如下:

 我对这个powerQuery不是很熟练,上面合并的工作表一次只能合并一张工作表,看起来效率也不算高,暂时还不晓得其它方法。除了这种方法以外,可能只有使用VBA宏来解决这个问题了。

2.pandas合并工作表

四个字:非常简单!

简单得出乎的意料!

代码如下:

import pandas as pd #依次读取前面6个工作表到DataFrame中,dfs里面是由6个DataFrame组成的数组 dfs = [pd.read_excel("test.xls",sheet_name=index) for index in range(6)] #连接dfs里面的6个DataFrame pd.concat(dfs).to_excel("text1.xlsx")

 三行代码搞定!

 而且居然自动忽略掉其它工作表的表头,只保留第一个工作表的标题栏,这确实很有意思,非常赞。

3.pandas合并工作表第二种方法

 依然非常简单:

import pandas as pd #sheet_name=None的意思是,一次性将所有的工作表都读取出来 dfs2 = pd.read_excel("test.xls",sheet_name=None) pd.concat(dfs2).to_excel("text.xlsx")

执行结果如下:

 可以看出,除了前面多了一行索引列以外,其它内容没有变化,依然没有标题栏。

总结

可以看出,如果要在excel中完成合并工作表并不容易,对excel版本有要求,或者VBA。而采用pandas则非常简单,基本上就两行代码,效果出其的好!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3