为了账号安全,请及时绑定邮箱和手机立即绑定

查找两个列表列之间的公共元素?

查找两个列表列之间的公共元素?

慕仙森 2023-08-08 15:06:07
假设这是我的数据框:dw = {'id' : [1,2,3,4,5], 'first_item' : [['Motherboard', 'Miscellaneous'],                                        ['Miscellaneous', 'Mechanical Hardware'],                                        ['Motherboard', 'Hard Drive'],                                        ['Mechanical Hardware', 'Hard Drive'],                                        ['Motherboard','Mechanical Hardware']],      'second_item' : [['Motherboard', 'Hard Drive'],                                        ['Mechanical Hardware', 'Mechanical Hardware'],                                        ['Motherboard', 'Hard Drive'],                                        ['Mechanical Hardware', 'Hard Drive'],                                        ['Motherboard','Miscellaneous']]}dw = pd.DataFrame(dw)我想找到第一项和第二项之间的交集/公共元素(按行),得到如下输出:   dw['new']1 ['Motherboard']2 ['Mechanical Hardware']3 ['Motherboard', 'Hard Drive']4 ['Mechanical Hardware', 'Hard Drive']5 ['Motherboard']我已经尝试过下面的代码,但它没有产生预期的结果:def intersection(lst1, lst2):    return list(set(lst1) & set(lst2))dw['new'] = dw.apply(lambda x: intersection(dw.first_item, dw.second_item), axis = 1)
查看完整描述

2 回答

?
胡子哥哥

TA贡献1825条经验 获得超6个赞

您可以尝试np.intesect1d

dw['new'] = [np.intersect1d(x,y) for x,y in zip(dw.first_item, dw.second_item)]


查看完整回答
反对 回复 2023-08-08
?
Helenr

TA贡献1780条经验 获得超3个赞

尝试这个


list1_as_set = set(list1)

intersection = list1_as_set.intersection(list2)             

intersection_as_list = list(intersection)

我不确定,但试试这个!


查看完整回答
反对 回复 2023-08-08
  • 2 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信