通过openpyxl获取excel最大的行数,然后对最大行数分为n块,skip, nrows参数 使用joblib库读取,
时间: 2023-02-11 09:48:14 浏览: 313
使用 openpyxl 库可以通过以下方式获取 Excel 文件中最大的行数:
```
from openpyxl import load_workbook
# 打开 Excel 文件
wb = load_workbook(filename)
# 获取第一个工作表
ws = wb.active
# 获取最大行数
max_row = ws.max_row
```
然后可以使用 joblib 库来读取 Excel 文件中的数据。可以使用 skip 参数和 nrows 参数来指定读取的行数。具体用法如下:
```
from joblib import Parallel, delayed
import pandas as pd
def read_excel_block(skip, nrows):
df = pd.read_excel(filename, skiprows=skip, nrows=nrows)
return df
# 将最大行数分为 n 块
n = 10
row_per_block = max_row // n
# 使用 joblib 库并行读取 Excel 文件中的数据
results = Parallel(n_jobs=-1)(delayed(read_excel_block)(i*row_per_block,row_per_block) for i in range(n))
```
如果最大行数不能被n整除就增加最后一块数量即可
```
if max_row % n != 0:
results.append(read_excel_block(n*row_per_block, max_row % n ))
```
最后,结果是一个列表,列表中每个元素都是一个读取的数据块.
上面的代码中使用了n_jobs=-1来启用所有可用的 CPU 核来并行处理。使用这种方法可以加快读取 Excel 文件中的数据的速度。
阅读全文