【发布时间】:2018-08-14 05:21:28
【问题描述】:
我有以下代码:
#Create an empty data frame to store item affinity scores for items.
itemAffinity= pd.DataFrame(columns=('item1', 'item2', 'score'))
rowCount=0
for ind1 in itemList:
item1user = itemuser_dict[ind1]
for ind2 in itemList:
if ind1 == ind2:
continue
item2user = itemuser_dict[ind2]
commonUsers = len(item1user.intersection(item2user))
affinity_score = commonUsers / len(item1user)
#Add a score for item 1, item 2
itemAffinity.loc[rowCount] = [ind1,ind2,affinity_score]
rowCount +=1
我花了很长时间等待 i7-7700 的进程(小时),而 itemList 中只有 2000 个项目。我想问一下是否有任何方法可以加快此代码的性能,因为我有 > 50k 个项目的大型项目列表?
【问题讨论】:
-
是的,有可能。如果您想知道如何操作,请先提供minimal reproducible example。
标签: python pandas loops time jupyter