我有一个用例,需要过滤属于某个因素组的数据帧。
例如,假设数据框看起来像这样:
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] 删除。
我来说两句