来自数据帧熊猫的数据的多线程

时间:2016-05-19 00:31:42

标签: python multithreading dataframe bigdata

我正在努力使用多线程来计算在篮子上有不同购物项目的客户列表之间的相关性。所以我有一个由1,000个客户组成的熊猫数据框,这意味着我必须计算100万次相关性,这需要很长时间来处理

数据框的示例如下所示:

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

以下是代码的简化版本:

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)

提前致谢!

2 个答案:

答案 0 :(得分:8)

正在寻找使用pandas DataFrame进行繁重计算的相同问题并找到

DASK http://dask.pydata.org/en/latest/

(来自此SO https://datascience.stackexchange.com/questions/172/is-there-a-straightforward-way-to-run-pandas-dataframe-isin-in-parallel

希望这有帮助

答案 1 :(得分:0)

签出Modin:“ Modin提供了与现有熊猫代码的无缝集成和兼容性。即使使用DataFrame构造函数也是如此。” https://modin.readthedocs.io/en/latest/