让我们假设这是我拥有的数据帧:
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)发布于 2020-09-15 12:03:42
你可以试试np.intesect1d
dw['new'] = [np.intersect1d(x,y) for x,y in zip(dw.first_item, dw.second_item)]发布于 2020-09-15 12:08:30
尝尝这个
list1_as_set = set(list1)
intersection = list1_as_set.intersection(list2)
intersection_as_list = list(intersection)我不确定,但是试试这个!!
https://stackoverflow.com/questions/63894853
复制相似问题