如何在熊猫中使用多重处理?

时间:2019-05-28 05:36:59

标签: python django pandas multiprocessing dask

当我在普通程序中使用多重处理时,它在熊猫中工作正常,但是当我使用这种多重处理时,时间却没有减少。

我尝试了使用多处理的普通代码

import multiprocessing
import time
import pandas as pd
start=time.time()

def square(df1):
    df1['M_threading'] = df1['M_Invoice_type']
def multiply(df4):
    df4['M_threading'] = df4['M_Invoice_type']

if __name__ == '__main__':
    df = pd.read_excel("filename.xlsx")
    df1 = df.loc[df['M_Invoice_type'] == 'B2B']
    df4 = df.loc[df['M_Invoice_type'] == 'B2BUR']
    p=multiprocessing.Process(target=square,args=(df1,))
    p1 = multiprocessing.Process(target=multiply, args=(df4,))
    p.start()
    p1.start()
    p.join()
    p1.join()
    print("Done")
    end=time.time()
    print(end-start)

我希望代码的输出时间为25秒,但实际输出为51秒。

1 个答案:

答案 0 :(得分:0)

尝试使用创建的两个新数据帧调用multiprocessing.Process

p = multiprocessing.Process(target=square,args=(df1,))
p1 = multiprocessing.Process(target=multiply, args=(df4,))