Pandas dataframe ile çoklu işlemeyi kullanmaya çalışıyorum, bu da veri çerçevesini 8 parçaya böler. Uygulamayı kullanarak her parçaya bazı fonksiyonlar uygulayın (her parça farklı işlemlerle işlenir). pandaların çoklu işlemden geçirilmesi
DÜZENLEME
: İşte nihayet bulundu çözüm:import multiprocessing as mp
import pandas.util.testing as pdt
def process_apply(x):
# do some stuff to data here
def process(df):
res = df.apply(process_apply, axis=1)
return res
if __name__ == '__main__':
p = mp.Pool(processes=8)
split_dfs = np.array_split(big_df,8)
pool_results = p.map(aoi_proc, split_dfs)
p.close()
p.join()
# merging parts processed by different processes
parts = pd.concat(pool_results, axis=0)
# merging newly calculated parts to big_df
big_df = pd.concat([big_df, parts], axis=1)
# checking if the dfs were merged correctly
pdt.assert_series_equal(parts['id'], big_df['id'])
içinde bir boşluk var = res = df.apply (süreç geçerli, eksen = 1) ', doğru mu? –
@yemu Bu kodla tam olarak neyi başarmaya çalışıyorsunuz? – Dalek
, şu anda sadece CPU'nun bir çekirdeğini doygun uygular. Çok işlemciyi kullanmak ve işlem süresini azaltmak için tüm çekirdekleri kullanmak istiyorum – yemu