I'm struggling to use multithreading for calculating relatedness between list of customers who have different shopping items on their baskets. So I have a pandas data frame consists of 1,000 customers, which means that I have to calculate the relatedness 1 million times and this takes too long to process

An example of the data frame looks like this:

 ID Item 1 Banana 1 Apple 2 Orange 2 Banana 2 Tomato 3 Apple 3 Tomato 3 Orange 

Here is the simplefied version of the code:

import pandas as pd def relatedness (customer1, customer2): # do some calculations to measure the relation between the customers data= pd.read_csv(data_file) customers_list= list (set(data['ID'])) relatedness_matrix = pd.DataFrame(index=[customers_list], columns=[customers_list]) for i in customers_list: for j in customer_list: relatedness_matrix.loc[i,j] = relatedness (i,j) 
3

2 Answers

Was looking for same problem about having heavy calculations using pandas DataFrame and found

DASK

(from this SO )

Hope this helps

Check out Modin: "Modin provides seamless integration and compatibility with existing pandas code. Even using the DataFrame constructor is identical."

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy