首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >python怎样快速匹配DataFrame中两列多值字符串(逗号分隔)?

python怎样快速匹配DataFrame中两列多值字符串(逗号分隔)?

提问于 2021-03-15 22:52:25
回答 0关注 0查看 138

问题如下:

dt1 = {'shxydm':['111111111','2222222222','33333333','4444444444','55555555555'],'spmc':['AAAA,CCCC','BBBB,EEEE,FFFF','CCCC,AAAA,BBBB','JJJJ,MMMM,BBBB,AAAA,CCCC','BBBB,CCCC,EEEE,FFFF' ],'tj_hy':['','','','','']}

df1 = pd.DataFrame(dt1)

dt2 = {'hy_dm':['0987','0120','2324'],'hymc':['行业_1','行业_2','行业_3'],'spmc':['AAAA,BBBB,DDDD,FFFF,EEEE,CCCC,MMMM','CCCC,MMMM,FFFF,UUUU,EEEE,DDDD,JJJJ','BBBB,CCCC,NNNN,YYYY,MMMM,EEEE'],'hits':0}

df2=pd.DataFrame(dt2)

描述:以df1中每个企业的经销商品名称(spmc)在df2中查找spmc列,找出与之最匹配的前3个行业,并将这3个行业的编码和名称写到对应企业的tj_hy列内。

我现在的思路是:分两层遍历df1和df2,将df1中的每条数据的spmc的字符串作为一个集合,与由df2中spmc列每行字符串组成的集合

求交集,将交集中的元素个数写在df2相应行的hits 里,然后按hits排序(降序)求出前3个行业信息,并将其hy_dm 和hymc连接后写到df1的当前遍历行中的tj_hy(推荐行业)。

难点: 速度非常慢!!! 当df1有12万行,df2中有1000行时估计耗时2天。无法接受。

请高手指点!谢谢!

回答

和开发者交流更多问题细节吧,去 写回答
相关文章

相似问题

相关问答用户
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档