将数据帧传递给线程

在函数中,我创建了一个本地数据框,名称为resamp_df。我试图将此本地数据帧传递给线程函数作为在其上运行某种算法的参数。这是我的代码:

主要功能

IndexError                                Traceback (most recent call last)
<ipython-input-18-3ab7637867a2> in <module>
     21 
     22 max_len = 500
---> 23 prim_,evo_,dih_,mask_ = limit_length_and_pad(prim_train,evo_train,dih_train,mask_train,max_len)
     24 x_train,y_train = np.concatenate([prim_,evo_],axis=2),dih_
     25 prim_v,evo_v,dih_v,mask_v = limit_length_and_pad(prim_valid,evo_valid,dih_valid,mask_valid,max_len)

<ipython-input-18-3ab7637867a2> in limit_length_and_pad(prim,evo,dih,mask,max_length)
     14     len_mask = np.array([len(el) for el in prim]) <= max_length
     15     prim_lim,evo_lim,dih_lim,mask_lim = (np.array(prim)[len_mask],np.array(evo)[len_mask],---> 16                                             np.array(dih)[len_mask],np.array(mask)[len_mask])
     17     prim_pad,evo_pad,dih_pad,mask_pad = (pad_array(prim_lim,max_length),pad_array(evo_lim,18                                             pad_array(dih_lim,pad_array(mask_lim,max_length,value=False,dtype=np.bool))

IndexError: boolean index did not match indexed array along dimension 0; dimension is 70 but corresponding boolean dimension is 8000

线程功能

if readyForOrder:
    order_thread = threading.Thread(target=order_management,name='thread1',args=resamp_df)
    order_thread.start()

但是我的线程没有运行。它会产生以下错误:

def order_management(df):
    global  readyForOrder,order_id,order_id_counter,ltp
    if df.shape[0] >= 3:
         readyForOrder = False
         old_ltp = df.iat[-2,0]
         new_ltp = df.iat[-1,0]

有什么建议可以使其正常工作吗?

预先感谢

kangzhai77 回答:将数据帧传递给线程

将参数作为元组传递

args=(resamp_df,)
本文链接:https://www.f2er.com/3052905.html

大家都在问