バスケットにさまざまなショッピングアイテムを持っている顧客のリスト間の関連性を計算するためにマルチスレッドを使用するのに苦労しています。つまり、pandasデータフレームは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)
前もって感謝します!
pandas DataFrameを使用して重い計算を行うことについて同じ問題を探していて、見つかりました
[〜#〜] dask [〜#〜]http://dask.pydata.org/en/latest/
お役に立てれば
Modinをチェックしてください:「Modinは既存のpandasコードとのシームレスな統合と互換性を提供します。DataFrameコンストラクターを使用しても同じです。」 https://modin.readthedocs.io/en/最新/