假設(shè)這是我的數(shù)據(jù)框: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']我已經(jīng)嘗試過下面的代碼,但它沒有產(chǎn)生預(yù)期的結(jié)果: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貢獻(xiàn)1825條經(jīng)驗 獲得超6個贊
您可以嘗試np.intesect1d
:
dw['new'] = [np.intersect1d(x,y) for x,y in zip(dw.first_item, dw.second_item)]

Helenr
TA貢獻(xiàn)1780條經(jīng)驗 獲得超4個贊
嘗試這個
list1_as_set = set(list1)
intersection = list1_as_set.intersection(list2)
intersection_as_list = list(intersection)
我不確定,但試試這個!
添加回答
舉報
0/150
提交
取消