Python使用openpyxl与pandas合并Excel表格

需积分: 3 1 下载量 80 浏览量 更新于2024-08-04 收藏 604B TXT 举报
"该代码示例展示了如何使用Python的`openpyxl`和`pandas`库来导入、处理及导出Excel文件。" 在Python编程中,处理Excel数据是常见的任务,`openpyxl`和`pandas`库提供了强大而灵活的功能。`openpyxl`是一个用于读取和写入Excel 2010 xlsx/xlsm/xltx/xltm文件的库,而`pandas`则是一个强大的数据分析工具,它支持多种数据结构,如DataFrame,方便数据处理。 在这个例子中,首先导入了`openpyxl`和`pandas`库,并使用别名`pd`来引用`pandas`。然后,使用`pd.ExcelFile()`函数打开并读取名为"303.xlsx"的Excel文件。这个函数返回一个ExcelFile对象,可以通过其`.sheet_names`属性获取所有工作表的名称。 接下来,代码遍历所有工作表,将每个工作表解析为一个DataFrame对象。初始时,`summary_sheet`被设置为`None`,然后在循环中,如果`summary_sheet`还没有值,就将第一个工作表的数据保存到`summary_sheet`;如果有值,就使用`pd.concat()`函数将新的DataFrame与`summary_sheet`进行水平合并(即列对齐),并将`ignore_index=True`以避免重复的行索引。最后,调用`reset_index(drop=True)`方法移除 DataFrame 的行索引并创建新的默认索引。 处理完所有工作表后,使用`openpyxl.load_workbook()`加载原始Excel文件,创建一个ExcelWriter对象。这一步并不是必要的,因为`ExcelFile`已经读取了文件,但在这里可能是为了保持原文件格式不变。然后,将`summary_sheet`的DataFrame写入一个新的工作表,命名为“汇总表”,并使用`index=True`保留行索引。最后,调用`writer.save()`保存更改到原文件。 通过这个过程,我们可以实现将多个Excel工作表的数据整合到一个单一的工作表中,这对于数据分析和报告编制非常有用。此外,此方法也适用于其他需要在Python中处理Excel数据的场景,例如数据清洗、分析、转换等。