从 dask 读取并行 excel 表

sch*_*ler 5 python-2.7 dask

您好,到目前为止,我遇到的使用 dask 的所有示例都是使用 dask read_csv 调用读取文件夹中的多个 csv 文件。

如果我提供了一个包含多个选项卡的 xlsx 文件,我可以使用 dask 中的任何内容来并行读取它们吗?

PS我使用 pandas 0.19.2 和 python 2.7

小智 5

对于使用 Python 3.6 的用户:

#reading the file using dask
import dask
import dask.dataframe as dd
from dask.delayed import delayed

parts = dask.delayed(pd.read_excel)(excel_file, sheet_name=0, usecols = [1, 2, 7])
df = dd.from_delayed(parts)

print(df.head())
Run Code Online (Sandbox Code Playgroud)

我发现 i7、16GB 第五代机器的负载速度提高了 50%。


mdu*_*ant 3

一个简单的例子

fn = 'my_file.xlsx'
parts = [dask.delayed(pd.read_excel)(fn, i, **other_options) 
         for i in range(number_of_sheets)]
df = dd.from_delayed(parts, meta=parts[0].compute())
Run Code Online (Sandbox Code Playgroud)

假设您提供“其他选项”来提取数据(跨工作表是统一的)并且您希望从该集中创建一个主数据框。

请注意,我不知道 Excel 阅读器的内部结构,因此读取/解析部分的并行程度是不确定的,但数据进入内存后的后续计算肯定会是并行的。