使用使用 openpyxl 和 pandas一起读取大量的excel表格数据的完整python代码
时间: 2024-12-16 10:16:54 浏览: 9
当你需要处理大量Excel数据,并希望结合openpyxl库用于低级别的读取操作以及pandas库进行数据清洗、分析等高级操作时,可以按照以下步骤编写Python代码:
首先,确保已经安装了所需的库,如果没有,可以使用pip安装:
```bash
pip install openpyxl pandas
```
然后,你可以使用下面的代码结构来读取Excel文件并转换为pandas DataFrame:
```python
import openpyxl
import pandas as pd
# 定义函数读取excel文件
def read_excel_large(file_path):
# 通过openpyxl逐行读取,因为openpyxl适合处理大文件
wb = openpyxl.load_workbook(filename=file_path, data_only=True) # 设置data_only=True,减少内存消耗
sheet_names = wb.sheetnames # 获取所有工作表名称
dfs = [] # 存放每个工作表的数据
for sheet_name in sheet_names:
ws = wb[sheet_name]
max_row = ws.max_row # 获取最大行数
rows = ws.iter_rows(values_only=True, start=1, stop=max_row+1) # 遍历行,跳过表头
data_list = [row for row in rows] # 将行数据存储为列表
df = pd.DataFrame(data_list, columns=[cell.value for cell in ws[1]]) # 创建DataFrame,列名来自第一行
dfs.append(df)
# 合并所有工作表到一个总DataFrame
all_data = pd.concat(dfs, ignore_index=True)
return all_data
# 调用函数,传入你的Excel文件路径
file_path = 'path_to_your_file.xlsx'
all_data = read_excel_large(file_path)
# 打印或进一步处理数据
print(all_data.head()) # 显示数据前几行
阅读全文