Julia GroupedDataFrame 组的多线程迭代

Multithreaded iteration over groups for Julia GroupedDataFrame

我在 Julia 1.4 (DataFrames 0.22.1) 中有一个 GroupedDataFrame。我想遍历行组来计算一些统计数据。因为组多,计算慢,所以想做这个多线程

代码

grouped_rows = groupby(data, by_index)
for group in grouped_rows
    # do something with `group`
end

有效,但是

grouped_rows = groupby(data, by_index)
Threads.@threads for group in grouped_rows
    # do something with `group`
end

结果 MethodError: no method matching firstindex(::GroupedDataFrame{DataFrame})。有没有办法并行化对 DataFrame 行组的迭代?

您需要 AbstractVector 才能使 Threads.@threads 工作。

因此收集你的grouped_rows

Threads.@threads for group in collect(SubDataFrame, grouped_rows)
    # do something with `group`
end