优化这段代码from openpyxl import load_workbook# 加载 Excel 文件workbook = load_workbook('example.xlsx')# 获取需要操作的工作表worksheet = workbook['Sheet1']# 获取最大行数和最大列数max_row = worksheet.max_rowmax_column = worksheet.max_column# 遍历需要操作的列for column in range(1, max_column + 1): # 求最大值 max_value = max([worksheet.cell(row=row, column=column).value for row in range(1, max_row + 1)]) # 求最小值 min_value = min([worksheet.cell(row=row, column=column).value for row in range(1, max_row + 1)]) # 求平均值 values = [worksheet.cell(row=row, column=column).value for row in range(1, max_row + 1)] mean_value = sum(values) / len(values) # 将平均值赋值给某一单元格 worksheet.cell(row=1, column=max_column + 1).value = mean_value# 保存 Excel 文件workbook.save('example.xlsx')
时间: 2024-01-01 10:05:24 浏览: 255
这段代码可以进行如下优化:
1. 遍历列时,可以先将每一列的值存储在一个列表中,避免多次访问单元格,从而提高效率。
2. 如果数据量较大,可以考虑使用 Pandas 库来处理 Excel 文件,Pandas 可以更快速地读取和处理大量数据。
下面是优化后的代码:
```python
from openpyxl import load_workbook
# 加载 Excel 文件
workbook = load_workbook('example.xlsx')
# 获取需要操作的工作表
worksheet = workbook['Sheet1']
# 获取最大行数和最大列数
max_row = worksheet.max_row
max_column = worksheet.max_column
# 存储每一列的值
column_values = []
for column in range(1, max_column + 1):
column_values.append([worksheet.cell(row=row, column=column).value for row in range(1, max_row + 1)])
# 遍历每一列
for i, values in enumerate(column_values):
# 求最大值
max_value = max(values)
# 求最小值
min_value = min(values)
# 求平均值
mean_value = sum(values) / len(values)
# 将平均值赋值给某一单元格
worksheet.cell(row=1, column=max_column + 1 + i).value = mean_value
# 保存 Excel 文件
workbook.save('example.xlsx')
```
这样代码会更加高效,同时也可以扩展到处理更大的数据量。
阅读全文