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
我在 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