缓冲区错误:无法获取标量缓冲区信息


import multiprocessing as mp
def parallel_apply(data, fun, args):
    pool = mp.Pool(mp.cpu_count() - 1)
    result = [pool.apply(fun, (data.loc[x, :], *args)) for x in data.index]
    result = [p.get() for p in result]
    end_result = pd.concat(result)
    return end_result

从这部分代码中,我收到以下错误:"缓冲区错误:无法获取标量缓冲区信息"。我尝试了几件事,但没有一件奏效。有什么建议吗?感谢您的帮助

如果您的代码更完整/可运行,它会更好地工作,但从外观上看,data可能是pandas数据帧?

无论如何,这可能是由最近发布的 numpy 1.15.0 引起的,该版本破坏了numpy.datetime64标量的酸洗。

multiprocessing使用pickle在不同进程之间序列化数据。

有关更多详细信息,请参阅:

  • https://github.com/numpy/numpy/issues/11656
  • https://github.com/numpy/numpy/pull/11694

一个简单的解决方法是降级到 numpy 1.14.0(或等待 1.15.1,它应该可以解决问题(。

相关内容

  • 没有找到相关文章

最新更新