Python 官方文档:入门教程 => 点击学习
一、问题的提出 现收集到多个excel表,需要对这些表进行汇总合并。但是这些Excel表并不规则,有不少空列,而且这些列名虽然一致,但是顺序各不相同,所以汇总起来并不是那么简单。单独的一个Excel表显示如下: Excel表 二、问题的
现收集到多个excel表,需要对这些表进行汇总合并。但是这些Excel表并不规则,有不少空列,而且这些列名虽然一致,但是顺序各不相同,所以汇总起来并不是那么简单。单独的一个Excel表显示如下:
Excel表
起初考虑用openpyxl,但是由于问题较为复杂,最后决定用os和pandas来解决。
第一步:用os来遍历当前目录下的所有excel表格,用列表表达式来生成这些文件名的列表:
import osfiles = [file for file in os.listdir(".") if file.endswith(".xlsx") if not file.endswith("~")]
第二步:导入pandas,批量读取Excel表,删除空例。
df = pd.read_excel(file, index_col=None,header = 0) df1 = df.dropna(how='all', axis=1,inplace=False) #inplace=True不创建新的对象 lst.append(df1)
第三步:利用pandas中的concat来按照列名合并数据框,最后把数据框转化为Excel,最终形成以下代码:
import pandas as pdimport oslst = []files = [file for file in os.listdir(".") if file.endswith(".xlsx") if not file.endswith("~")]for file in files: df = pd.read_excel(file, index_col=None,header = 0) df1 = df.dropna(how='all', axis=1,inplace=False) #inplace=True不创建新的对象 lst.append(df1)sava_data = pd.concat(lst,axis = 0,ignore_index=True) #ignore_index 重建索引 axis=1 列空值sava_data.to_excel("合并.xlsx",index=False,header=1) #设置无索引
以下是合并后的Excel表展示,效果还不错,保持了原为表头和格式,而且排列整齐。
合并后的Excel表
来源地址:https://blog.csdn.net/henanlion/article/details/130692020
--结束END--
本文标题: Python批量合并Excel表
本文链接: https://lsjlt.com/news/402782.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0