我有两个数据框如下: DF1:
Name Value
buying fish hook 240
arrange lunch 75
repair equipment 800
purchase air condition 1400
buying fish 66
DF 2:
Name
fish
lunch
equipemt
air condition
hair condition
fish hook
我想用模糊逻辑匹配两个数据框中名称列中的名称,并将第二个数据框中的名称列添加到第一个数据框中:
Name Value item
buying fish hook 240 fish hook
arrange lunch 75 lunch
repair equipment 800 equipment
purchase air condition 1400 air condition
并非所有名称都完全匹配。 Df 2 有几个名字,有些有匹配词,例如:air condition 和 hair condition。从 DF 1 拆分值会导致未匹配,其中鱼钩仅与鱼匹配
最佳答案
您可以使用 pd.Series.apply
使用 next
和一个生成器表达式。在多个匹配的情况下,此方法将按 df2
中的行顺序给予优先级。如果未找到匹配项,find_key
将返回 None
。
def find_key(x):
return next((i for i in df2['Name'].values if x in i), None)
df1['item'] = df1['Name'].apply(find_key)
关于python - 如何使用模糊逻辑从 Pandas 数据框中匹配和提取文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51187962/