Python openpyxl 如何删除行和列 📅 2026/6/30 22:49:33 在数据处理和分析中Excel 文件是不可或缺的一部分。Python 的 openpyxl 库提供了强大的功能来操作 Excel 文件包括读取、写入、修改和格式化数据。然而很多初学者在使用 openpyxl 时会遇到一个常见的问题如何删除 Excel 文件中的行和列本文将详细介绍 openpyxl 中删除行和列的方法并通过具体的代码示例帮助你轻松掌握这一技能。为什么需要删除行和列在实际工作中我们经常需要对 Excel 文件进行数据清洗。例如去除多余的空行、删除不需要的列或者清理错误的数据。这些操作不仅能够提高数据的质量还能提升后续分析的效率。因此学会如何在 openpyxl 中删除行和列是非常重要的。安装 openpyxl如果你还没有安装 openpyxl可以使用以下命令进行安装pip install openpyxl运行项目并下载源码bash删除行基本方法openpyxl 提供了 delete_rows 方法来删除指定的行。该方法的基本语法如下worksheet.delete_rows(idx, amountNone)运行项目并下载源码python运行idx要删除的行号。amount可选参数表示要删除的行数。如果不指定默认只删除一行。示例 1删除单行假设我们有一个 Excel 文件 example.xlsx其中包含以下数据A B C1 2 34 5 67 8 9我们想要删除第 2 行即索引为 2 的行可以使用以下代码from openpyxl import load_workbook# 加载工作簿wb load_workbook(example.xlsx)ws wb.active# 删除第 2 行ws.delete_rows(2)# 保存工作簿wb.save(example_deleted_row.xlsx)运行项目并下载源码python运行执行上述代码后example_deleted_row.xlsx 文件的内容将变为A B C1 2 37 8 9示例 2删除多行如果需要删除多行可以通过指定 amount 参数来实现。例如删除从第 2 行开始的 2 行# 删除从第 2 行开始的 2 行ws.delete_rows(2, 2)# 保存工作簿wb.save(example_deleted_multiple_rows.xlsx)运行项目并下载源码python运行执行上述代码后example_deleted_multiple_rows.xlsx 文件的内容将变为A B C1 2 3动态删除行在实际应用中我们可能需要根据某些条件动态删除行。例如删除所有值为 0 的行。可以使用以下代码实现# 遍历所有行删除值为 0 的行for row in list(ws.iter_rows(min_row1, max_rowws.max_row)):if all(cell.value 0 for cell in row):ws.delete_rows(row[0].row)# 保存工作簿wb.save(example_deleted_zero_rows.xlsx)运行项目并下载源码python运行删除列基本方法openpyxl 提供了 delete_cols 方法来删除指定的列。该方法的基本语法如下worksheet.delete_cols(idx, amountNone)运行项目并下载源码python运行idx要删除的列号。amount可选参数表示要删除的列数。如果不指定默认只删除一列。示例 1删除单列假设我们有一个 Excel 文件 example.xlsx其中包含以下数据A B C1 2 34 5 67 8 9我们想要删除第 2 列即索引为 2 的列可以使用以下代码from openpyxl import load_workbook# 加载工作簿wb load_workbook(example.xlsx)ws wb.active# 删除第 2 列ws.delete_cols(2)# 保存工作簿wb.save(example_deleted_column.xlsx)运行项目并下载源码python运行执行上述代码后example_deleted_column.xlsx 文件的内容将变为A C1 34 67 9示例 2删除多列如果需要删除多列可以通过指定 amount 参数来实现。例如删除从第 2 列开始的 2 列# 删除从第 2 列开始的 2 列ws.delete_cols(2, 2)# 保存工作簿wb.save(example_deleted_multiple_columns.xlsx)运行项目并下载源码python运行执行上述代码后example_deleted_multiple_columns.xlsx 文件的内容将变为A147动态删除列在实际应用中我们可能需要根据某些条件动态删除列。例如删除所有值为 0 的列。可以使用以下代码实现# 遍历所有列删除值为 0 的列for col in reversed(list(ws.iter_cols(min_col1, max_colws.max_column))):if all(cell.value 0 for cell in col):ws.delete_cols(col[0].column)# 保存工作簿wb.save(example_deleted_zero_columns.xlsx)运行项目并下载源码python运行注意事项行和列的索引openpyxl 中的行和列索引是从 1 开始的而不是从 0 开始。删除顺序在动态删除行或列时建议从后向前删除以避免索引变化导致的问题。性能考虑对于大型文件频繁的删除操作可能会导致性能下降。建议在必要时批量处理。扩展阅读openpyxl 官方文档Python 数据分析基础教程CDA 数据分析师提供的课程涵盖了 Python 数据分析的基础知识和实战技巧适合初学者和进阶者学习。通过本文的学习你应该已经掌握了如何使用 openpyxl 删除 Excel 文件中的行和列。希望这些方法能帮助你在数据处理和分析中更加高效。如果有任何问题或建议欢迎在评论区留言交流。