Dask数据框str.contains(regex = True)不比熊猫快

时间:2019-10-31 05:27:01

标签: python pandas dataframe dask

我有一个要在正则表达式中搜索的熊猫数据框:

df[df['material'].str.contains(r'\baluminum\b', regex=True)]

我认为这可以与Dask并行化,但是并不能提高性能:

import dask.dataframe as dd
ddf = dd.from_pandas(df, npartitions=8)
dask.config.set(scheduler=dask.multiprocessing.get)

# Pandas DF
%timeit df[df['material'].str.contains(r'\baluminum\b', regex=True)]
23.7 s ± 571 ms per loop (mean ± std. dev. of 7 runs, 1 loop each)

# Dask DF
%timeit ddf[ddf['material'].str.contains(r'\baluminum\b',regex=True)].compute()
25.6 s ± 1.25 s per loop (mean ± std. dev. of 7 runs, 1 loop each)

那是为什么?该操作不是可并行化的吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,dask数据帧使用多线程调度程序。正则表达式计算可能不会释放GIL。您可能想尝试使用多处理调度程序。请参阅https://docs.dask.org/en/latest/scheduling.html

相关问题