I've a dataframe all_paths with say 9000 rows, and i've another dataframe Legs with 4000 rows. I need to filter all_paths dataframe based on a column called 'itineraries' which contains a list of strings, for each row in Legs. So, basically its like getting a dataframe that is subset of all_paths for each row in Legs. Then I need to perform a math operation on the columns of each subset and assign the values back to another column in all_paths. Following is my implementation
def step1_vec(iti_list, idx): mask= all_paths.loc[all_paths['Path'].isin(iti_list)] Legs.loc[idx,'r']=np.dot(mask['demand'].values, mask['u'].values.T) Legs.loc[idx, 't']= Legs.loc[idx, 'k']/Legs.loc[idx, 'r'] def step2(): not_full_legs=Legs.loc[(~Legs['Leg ID'].isin(full_legs))&(Legs['t']<1)] np.vectorize(step1_vec (not_full_legs['itineraries'].values,not_full_legs.index.values) -- https://mail.python.org/mailman/listinfo/python-list