gpt4 book ai didi

python - Pandas 多处理应用

转载 作者:IT老高 更新时间:2023-10-28 20:48:18 26 4
gpt4 key购买 nike

我正在尝试对 pandas 数据帧使用多处理,即将数据帧拆分为 8 个部分。使用 apply 对每个部分应用一些功能(每个部分在不同的过程中处理)。

编辑:这是我终于找到的解决方案:

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'])

最佳答案

您可以使用 https://github.com/nalepae/pandarallel ,如下例所示:

from pandarallel import pandarallel
from math import sin

pandarallel.initialize()

def func(x):
return sin(x**2)

df.parallel_apply(func, axis=1)

关于python - Pandas 多处理应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26784164/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com