首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在列表列的两个列表之间找到公共元素?

在列表列的两个列表之间找到公共元素?
EN

Stack Overflow用户
提问于 2020-09-15 11:58:16
回答 2查看 343关注 0票数 1

让我们假设这是我拥有的数据帧:

代码语言:javascript
复制
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)

我希望找到第一个项目和第二个项目之间的交集/公共元素(按行),得到如下输出:

代码语言:javascript
复制
   dw['new']
1 ['Motherboard']
2 ['Mechanical Hardware']
3 ['Motherboard', 'Hard Drive']
4 ['Mechanical Hardware', 'Hard Drive']
5 ['Motherboard']

我试过下面的代码,但它没有产生预期的结果:

代码语言:javascript
复制
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)
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-09-15 12:03:42

你可以试试np.intesect1d

代码语言:javascript
复制
dw['new'] = [np.intersect1d(x,y) for x,y in zip(dw.first_item, dw.second_item)]
票数 1
EN

Stack Overflow用户

发布于 2020-09-15 12:08:30

尝尝这个

代码语言:javascript
复制
list1_as_set = set(list1)
intersection = list1_as_set.intersection(list2)             
intersection_as_list = list(intersection)

我不确定,但是试试这个!!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63894853

复制
相关文章

相似问题

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