我正在尝试找到一种多功能处理此功能的方法。
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,但出现了很多错误,而且我不确定如何对多重处理库使用多个参数。另外,当前的设置似乎永远都在进行,我确定这是错误的。
谢谢。