您好,到目前为止,我遇到的使用 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%。
一个简单的例子
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 阅读器的内部结构,因此读取/解析部分的并行程度是不确定的,但数据进入内存后的后续计算肯定会是并行的。