基于 Pandas DataFrame 和 List 获取更多相似词

Get more similar word based on a Pandas DataFrame and a List

我想 return 我的数据框上的一个新列,其中的词更类似于我的 pandas 列值(在本例中为 col1)。 我的实际数据框是:

我有以下列表:

['Product_A1', 'Product_B1', 'Product_C']

我的输出应该是:

为此,我使用以下代码(我只是打印结果):

import pandas as pd
import difflib
d = {'col1': ['Product_Z1', 'Product_A', 'Product_B'], 'col2': [1, 2, 3]}
df = pd.DataFrame(data=d)
products_list = ['Product_A', 'Product_B', 'Product_C']
print(difflib.get_close_matches(df['col1'], products_list))

但是我总是得到一个空列表...

我做错了什么?

谢谢!

试试这个:

df['col3'] = df['col1'].apply(lambda x : difflib.get_close_matches(x, products_list, cutoff=0.9))

关于您的解决方案的问题是 get_close_matches 函数正在寻找 products_list 中的整个列。添加以下行并查看:

In [8]: products_list2 = [['Product_Z1', 'Product_A', 'Product_B'], ['test']]

In [9]: difflib.get_close_matches(df['col1'], products_list2)
Out[9]: [['Product_Z1', 'Product_A', 'Product_B']]