【问题标题】:error in parallel processing in python using dataframe使用数据框在python中并行处理中的错误
【发布时间】:2015-12-11 21:43:50
【问题描述】:

我有一个如下所示的数据框 HH

     end_Date  latitude  longitude start_Date
0    9/5/2014   41.8927   -90.4031   4/1/2014
1    9/5/2014   41.8928   -90.4031   4/1/2014
2    9/5/2014   41.8927   -90.4030   4/1/2014
3    9/5/2014   41.8928   -90.4030   4/1/2014
4    9/5/2014   41.8928   -90.4029   4/1/2014
5    9/5/2014   41.8923   -90.4028   4/1/2014

我正在尝试使用 python 中的多处理包并行化我的函数: 这是我写的:

if __name__ =='__main__':    
    pool = Pool(200)
    start = time.time()
    print "Hello"
    H = pool.map(funct_parallel, HH)
    pool.close()
    pool.join()

当我运行此代码时,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 685, in runfile
    execfile(filename, namespace)
  File "C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 71, in execfile
    exec(compile(scripttext, filename, 'exec'), glob, loc)
  File "C:/Users/Desktop/testparallel.py", line 198, in <module>
    H = pool.map(funct_parallel, HH)
  File "C:\Users\AppData\Local\Continuum\Anaconda2\lib\multiprocessing\pool.py", line 251, in map
    return self.map_async(func, iterable, chunksize).get()
  File "C:\Users\AppData\Local\Continuum\Anaconda2\lib\multiprocessing\pool.py", line 567, in get
    raise self._value
TypeError: string indices must be integers, not str

不知道哪里出错了?

【问题讨论】:

    标签: python python-2.7 pandas parallel-processing multiprocessing


    【解决方案1】:

    pool.map 需要一个iterable 作为第二个参数,它提供给function see docs

    如果你遍历DataFrame,你会得到column 的名字——因此抱怨string indices

    for i in df:
        print(i)
    
    end_Date
    latitude
    longitude
    start_Date
    

    您需要将DataFrame 分解成可以由pool 并行处理的片段,例如通过读取chunks 中的文件,如I/O docs 中所述。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 2023-04-07
      • 1970-01-01
      • 2019-05-10
      • 2017-02-17
      • 2015-10-03
      • 1970-01-01
      • 2012-05-11
      相关资源
      最近更新 更多