多处理for循环,该循环附加到带有多个参数的pandas数据帧

问题描述

我正在尝试找到一种多功能处理此功能方法

from multiprocessing import Pool
import pandas 


#csv,dfew1

def dataframe_iterator(csv,dfnew1):
    for item in csv['Trips_Tbl_ID'].unique():
            # creating a temporary file for each unique trip table ID
            dftemp = traveL_time(item,'all')
            # appending the temporary file to a new file
            dfnew1 = dfnew1.append(dftemp)

    return dfnew1

if __name__ == '__main__':
    args = [(csv),(dfnew1)]
    start_time = time.time()

    pool = Pool()
    pool.map(dataframe_iterator,args)
    pool.close()
    pool.join()

print("--- %s seconds ---" % (time.time() - start_time))

某些上下文:

'csv'是一个巨大的数据框,其中包含一堆混乱的运输记录和许多非唯一的行程表ID。它已在jupyter笔记本中被调用

对于csv中的每个唯一行程表ID,我正在应用一个称为traveL_time的计算量大的定制函数来对其进行转换和压缩。

'dfnew1'是一个定制的空数据框,其结构与将traveL_time函数应用于'csv'后的数据框具有完全相同的结构,这就是为什么我在for循环中将其附加到它。它已在jupyter笔记本中被调用

我对python来说还很陌生,我在加速运行时遇到了一些麻烦,因为它确实是一个庞大的数据集,目前要花9分钟的时间才能在“ csv”中查看超过15万条记录,所以我最终不得不超过亿条记录。

我的问题是,如何使用两个参数csv和dfnew1来多处处理此功能,从而有可能加快速度?

我尝试使用pandarallel,但出现了很多错误,而且我不确定如何对多重处理库使用多个参数。另外,当前的设置似乎永远都在进行,我确定这是错误的。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)