我的 Microsoft Excel 数据中有多个空行,因此我想使用 Python 删除它们。然而这样做的过程中,速度太慢了,数据本身只有80MB。这是我的代码:
import openpyxl
file_path = 'C:\\Users\\ASUS\\Downloads\\Priority List Expiry Gathering-Drugs & Consumables Oct 2023 (3) (1) copy.xlsx'
# Load the workbook using openpyxl workbook = openpyxl.load_workbook(file_path) sheet = workbook['Sheet1']
empty_rows = [] for row in sheet.iter_rows(max_col=50):
empty = not any(cell.value for cell in row)
if empty:
empty_rows.append(row[0].row) # Append the row number
# Delete empty rows using openpyxl for row_idx in reversed(empty_rows):
sheet.delete_rows(row_idx, 1)
有什么办法可以加快这个过程吗?因为我需要它来清理我的工作数据
不确定为什么你的代码很慢,但制作两个循环可能会减慢速度。
在一个循环中执行空检查和删除应该会稍微加快速度。
import openpyxl
file_path = 'C:\\Users\\ASUS\\Downloads\\Priority List Expiry Gathering-Drugs & Consumables Oct 2023 (3) (1) copy.xlsx'
# Load the workbook using openpyxl
workbook = openpyxl.load_workbook(file_path)
sheet = workbook['Sheet1']
rows = reversed(list(sheet.iter_rows(max_row=50)))
for row in rows:
if not any(cell.value for cell in row):
sheet.delete_rows(row[0].row, 1)
workbook.save('deleted.xlsx')