在单独的数据框(熊猫)中查找两列之间的公共值,其中列包含项目列表

时间:2018-10-03 06:45:26

标签: python-3.x pandas list compare

此问题与link有关。我有两个数据框,它们可能包含具有相似或精确信息的列。我正在尝试比较以下示例中名为Productdetailed的列。

>>> df1 = pd.DataFrame({ 'ID':['9', '10', '11', '12', '13', '14', '15', 
'16', '17', '18'],
'Productdetailed': [['Phone', 'Watch', 'Pen', 'Eraser'],
['Phone', 'Watch', 'Pen'] ,['Pencil', 'fork', 'Eraser'], ['Apple', 'Mango', 'Orange'],
['Something', 'Nothing', 'Everything'], ['Eraser', 'fork', 'Pencil'],
['Phone', 'Watch', 'Pen'],['Apple', 'Mango', 'Cherry'],
['Apple', 'Mango', 'Cherry'] ,['Pen', 'Phone', 'Watch']]})

>>> df2 = pd.DataFrame({ 'ID':['1', '2', '3', '4', '5', '6', '7', '8'],
'Productdetailed': [['Phone', 'Watch', 'Pen'], ['Pencil', 'fork', 'Eraser'], 
['Apple', 'Mango', 'Orange'], ['Something', 'Nothing', 'Everything'],
['Eraser', 'fork', 'Pencil'], ['Phone', 'Watch', 'Pen'],
['Apple', 'Mango', 'Cherry'], ['Pen', 'Phone', 'Watch']]})

我根据条件将一个大数据帧分为两个部分,分别称为df1和df2。我需要执行上一个链接中所述的完全相似的比较。我正在尝试查找列表中具有100%匹配项的条目。我也想找到匹配率90%或更低的匹配器。

首先,我想计算精确匹配项的数量(匹配行数的数量)以及与其匹配的行索引号。但是,当某些项目仅部分匹配时,例如df1索引0和df2索引0。我想说一说已匹配的项目的百分比以及与之对应的列号。

数据帧的大小不同,索引号没有顺序,因为它们是从较大的数据帧中断开的。

0 个答案:

没有答案