让我写一个数据框来解释我的问题:
Loc Length Size
A 5 50
A 10 90
A 8 0
B 20 140
B 5 50
B 12 0
考虑一下,我有一个这样的数据框。我想做的是替换等于0的Size值。我想替换此值,例如: 如果Loc A中的大小,我要做的是(A中大小的总和)/(A中长度的总和)乘以Length,然后将此值更改为零。我想对等于0的每个Size值执行此操作,这取决于他的Location的sumSize / sumLength和他的行的Length值。 我试过了,但是什么也做不了。请帮助我,谢谢!
答案 0 :(得分:2)
IIUC let group = DispatchGroup()
let queue = DispatchQueue(label: "com.num.loop", attributes: .concurrent)
let semaphore = DispatchSemaphore(value: 4)
for i in 1...1000 {
semaphore.wait()
group.enter()
queue.async(group: group, execute: {
doWork(i)
group.leave()
semaphore.signal()
})
}
group.notify(queue: DispatchQueue.main) {
// go on...
}
在groupby
上求和,然后Loc
结果:
map