Python/使用多进程处理 DataFrame

Python/使用多进程处理 DataFrame

基本思路是,将DataFrame拆成若干组分,最后通过pandas.concat合并起结果

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def parallelize_dataframe(df, func, n_jobs=3, split_num=10):
## 拆分数据表
df_split = np.array_split(df, split_num)
pool = Pool(n_jobs)
df_list = []

## map操作
for df_element in tqdm_notebook(pool.imap(func, df_split), total=10000):
df_list.append(df_element)

## reduce操作
df = pd.concat(df_list)

## 关闭进程
pool.close()
pool.join()
return df

还可以使用tqdm在处理数据时显示进度条。

评论