<p>要知道精确匹配:</p>
<pre><code>df2["Productdetailed"]=df2["Productdetailed"].sort_values()
# create new colum from the sorted list. More easy to work with pivot table
df2['Productdetailed_str'] = df2['Productdetailed'].apply(lambda x: ', '.join(x))
df2["hit"] = 1
df3 = (df2.pivot_table(index=["Productdetailed_str"],
values=["ID", "hit"],
aggfunc={'ID': lambda x: ', '.join(x), 'hit': 'sum'}
))
</code></pre>
<p>Hit是出现的次数。
结果df3:</p>
<pre><code> ID hit
Productdetailed_str
Apple, Mango 7 1
Apple, Mango, Orange 3 1
Eraser, fork, Pencil 5 1
Pen, Phone, Watch 8 1
Pencil, fork, Eraser 2 1
Phone, Watch, Pen 1, 6 2
Something, Nothing, Everything 4 1
</code></pre>
<p>部分匹配比较困难,但您可以开始拆分列表并使用数据透视表:</p>
<pre><code>test = df2.apply(lambda x: pd.Series(x['Productdetailed']),axis=1).stack().reset_index(level=1, drop=True).to_frame(name='list').join(df2)
</code></pre>
<p>如果你运行测试。在“list column”中有“Productdetailed column”列表中的单词。还有,你有身份证。。。所以我认为使用pivot表可以提取信息。。你知道吗</p>