这个问题类似于this one,但更多地关注性能方面。 我有X对列,其中包含来自数据帧的列表值,我想删除它们并将它们替换为相交项的计数
到目前为止,我已经使用了此解决方案(它可以工作,但是对于数百万行的速度肯定不够快):
for column1,column2 in get_couples():
interactions[intersection] = [
len(set(a) & set(b))
for a, b in zip(interactions[column1], interactions[column2])
]
我想也许会朝另一个方向发展,变换系列系列中的列表单元格(我读过该列表,因为dtype列不理想):
stack_query_time_categorical = only_categorical['querySelectedCategories'].apply(pd.Series).stack().astype('category')
stack_product_categorical = only_categorical['productCategories'].apply(pd.Series).stack().astype('category')
intersection_stack = pd.Series(len(set(stack_query_time_categorical) & set(stack_product_categorical)))
到目前为止,这不起作用,因为它仅返回第一个交集(索引0)。 所以肯定那里出了问题。 我也不确定这会带来任何性能上的好处...