让Python中的apply函数更快

问题描述 投票:0回答:1

我在大约600万行上运行以下代码。太慢了,而且没完没了。

df['City'] = df['POSTAL_CODE'].apply(lambda x: nomi.query_postal_code(x).county_name)

它为每个邮政编码分配了一个相应的城市。当我在一片日期集上运行它时(例如,1000行),它运行得很好。但是在整个数据上运行这段代码从来没有给我任何输出。

谁能修改一下代码,让它更快?

谢谢你!我在下面的代码上运行,大约有1000条记录。

python function loops apply cpu-speed
1个回答
0
投票
!pip3 install multiprocess

from multiprocess import Pool

def parallelize_dataframe(data, func, n_cores=4):
       data_split = np.array_split(data, n_cores)
       pool = Pool(n_cores)
       data = pd.concat(pool.map(func, data_split))
       pool.close()
       pool.join()
       return data


df['City'] = parallelize_dataframe(df['POSTAL_CODE'], lambda x: nomi.query_postal_code(x).county_name, 4)
© www.soinside.com 2019 - 2024. All rights reserved.