Pandas 是否可以将Series.str.extract与Dask一起使用?

Pandas 是否可以将Series.str.extract与Dask一起使用?,pandas,dask,dask-dataframe,Pandas,Dask,Dask Dataframe,我目前正在处理一个大熊猫数据集,我必须使用。 看起来是这样的: df['output_col'] = df['input_col'].str.extract(r'.*"mytag": "(.*?)"', expand=False).str.upper() 但是,它工作得很好,因为它必须执行大约十次(使用各种源列),所以性能不是很好。为了通过使用多个内核来提高性能,我想尝试Dask,但它似乎不受支持(我在Dask的文档中找不到任何关于提取方法的参考) 有没

我目前正在处理一个大熊猫数据集,我必须使用。 看起来是这样的:

df['output_col'] = df['input_col'].str.extract(r'.*"mytag": "(.*?)"', expand=False).str.upper()
但是,它工作得很好,因为它必须执行大约十次(使用各种源列),所以性能不是很好。为了通过使用多个内核来提高性能,我想尝试Dask,但它似乎不受支持(我在Dask的文档中找不到任何关于提取方法的参考)

有没有办法同时执行这些行动? 我发现,基本上您可以将数据帧拆分为多个数据帧,为每个子帧创建一个进程,然后再将它们连接回来。

您最好的选择是使用,它使您能够对系列的各个部分执行常规操作,就像您链接的多处理方法的托管版本一样

def inner(df):
    df['output_col'] = df['input_col'].str.extract(
        r'.*"mytag": "(.*?)"', expand=False).str.upper()
    return df

out = df.map_partitions(inner)

由于这是一个字符串操作,您可能需要进程(例如,分布式调度程序)而不是线程。请注意,如果您使用dask(例如,dd.read_csv)加载数据,而不是在内存中创建数据帧,然后将其传递给dask,那么您的性能会更好。

您应该能够像在pandas中这样做。文档部分提到了它,但扩展它可能很有价值

将熊猫作为pd导入
将dask.dataframe作为dd导入
​
s=pd.Series([“示例”、“字符串”、“有用”])
ds=来自大熊猫的dd(s,2)
ds.str.extract(“[a-z\s]{4}(.{2})”,expand=False.str.upper().compute()
0 PL
1纳克
2美国
数据类型:对象

好的,我已经尝试了一个代码示例,它似乎很有效。