【发布时间】:2020-07-18 06:00:43
【问题描述】:
我有一个包含 200 个 DataFrame 的列表,我正在尝试应用一个函数,但是。我正在尝试在 python 中应用并行函数来加快速度,但无法获得期望的结果。 下面是我的代码 data 是具有相同列和行但值不同的 DataFrame 列表
import pandas as pd
import multiprocessing as mp
def maxloc(data):
data['loc_max'] = np.zeros(len(data))
for i in range(1,len(data)-1):
if data['value'][i] >= data['value'][i-1] and data['value'][i] >= data['value'][i+1]:
data['loc_max'][i] = 1
return data
pool = mp.Pool(mp.cpu_count())
results = pool.map(maxloc, [row for row in data])
pool.close()
pool.join()
【问题讨论】:
-
scipy.signal.argrelextrema 可能对这项任务有帮助。它已经被矢量化了,因此应该很快。
-
@cel 谢谢,我怎样才能在这个中使用我自己的函数 maxloc?
标签: python python-3.x python-2.7 multiprocessing python-multiprocessing