我有一個可以使用多核處理的海量資料集。我有一個資料框,每行都有序列和塊大小。
我撰寫了一個回圈,它提取每行的序列和塊大小,并從名為 localcider 的包中的函式計算分數。
我不知道如何并行運行它。
有人可以幫忙嗎?
omega = []
AA=list('FYW')
for i, row in df.iterrows():
seq = df['IDRseq'][i]
b = df['bsize'][i]
bsize = [b-1,b]
SeqOb = SequenceParameters(seq,blobsize=bsize)
omega.append(SeqOb.get_kappa_X(AA))
s1 = pd.Series(omega, name='omega')
df = df.assign(omega=s1.values)
uj5u.com熱心網友回復:
經過大量的谷歌搜索,我遇到了 pandarallel。
我認為這是做我想做的最直觀的方式。
我正在發布代碼以供將來參考。
from pandarallel import pandarallel
pandarallel.initialize(progress_bar=True, nb_workers = n)
# nb_workers = n ; I set the nb_workers fo CPU core - 1 so the system is more stable
def something(x):
#do stuff
return result
df['result'] = df.parallel_apply(something, axis=1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/444729.html
