使用Dask并行过滤数据帧的块

雪橇

我有一个用例,需要过滤属于某个因素组的数据帧。

例如,假设数据框看起来像这样:

index    col1    col2
0        A       5
1        A       10
2        B       5
3        B       8
4        C       0
... and so on

我需要做的是获取其中的数据块df[df['col1'] == 'A'],然后应用另一个函数,根据其他条件测试行,然后进一步过滤数据。

所以我的循环目前看起来像这样:

df_chunks = [df[df['col1'] == x] for x in col1_unique_values]
outputs = []
for df_chunk in df_chunks:
    output = do_my_custom_filter(df_chunk)
    outputs.append(output)

有没有办法用Dask替换last for循环?我尝试了多处理路由,发现很难调试。

为此目的的任何设计模式都将非常有帮助!

麦考林

看来您的计算可能令人尴尬地是并行的。如果是这样,您可以编写一个使用并产生Pandas数据帧的函数,然后调用df.map_partitions(your_function)

另外,如果您希望将这些块合并在一起,则可能需要查看groupby-apply,如下所示:

df.groupby("col1").apply(my_custom_function)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将dask数据帧转换为数据帧太慢,使用它并行处理时不节省时间

来自分类Dev

使用formattable过滤数据帧

来自分类Dev

使用需要并行写入数据帧的 parSapply

来自分类Dev

使用字典过滤dask数据框

来自分类Dev

使用for循环在R中过滤数据帧

来自分类Dev

R使用向量过滤数据帧

来自分类Dev

使用Dask从文件系统/ S3并行读取文件块?

来自分类Dev

使用数据帧列表进行火花并行写入

来自分类Dev

无法合并 dask 数据帧

来自分类Dev

数据帧过滤

来自分类Dev

数据帧的列式过滤

来自分类Dev

提取过滤的数据帧

来自分类Dev

为什么Dask使用from_pandas计算数据帧的速度比直接使用dask读取数据的速度快?

来自分类Dev

使用dplyr在R中按组过滤数据帧

来自分类Dev

如何使用字符向量过滤数据帧

来自分类Dev

使用布尔逻辑基于多个条件过滤数据帧

来自分类Dev

使用dplyr在R中按组过滤数据帧

来自分类Dev

F#Deedle使用String.Contains过滤数据帧

来自分类Dev

使用REGEX的grepl()的subset()来过滤R中的数据帧

来自分类Dev

使用R中不同数据帧的过滤信息从数据帧中的列进行随机采样

来自分类Dev

使用保留,丢弃和过滤将数据帧保留在数据帧列表中

来自分类Dev

以bcolz格式保存dask数据帧

来自分类Dev

R中对数据帧的并行处理

来自分类常见问题

通过逻辑过滤数据帧

来自分类Dev

从JSON输入过滤数据帧

来自分类Dev

通过逻辑过滤数据帧

来自分类Dev

如何过滤pyspark数据帧

来自分类Dev

在R中过滤数据帧

来自分类Dev

使用Dask将大于内存的数据帧缓存到本地磁盘