如何使用Fuzzywuzzy模块比较两个熊猫列的字符串

时间:2019-06-10 15:08:10

标签: python pandas fuzzywuzzy

我有一个包含多列的数据框,我想将两列相互比较。我尝试使用Fuzzywuzzy模块,而不是创建函数并将其应用到列

import pandas as pd
import itertools
import re
import pymorphy2 
import nltk
from nltk.corpus import stopwords 
import difflib
import fuzzywuzzy as fuz
from fuzzywuzzy import fuzz 
from fuzzywuzzy import process

def stringComparison(column1,column2):
score = fuzz.WRatio(column1,column2)
return score

df1['Коэффициент  схожести'] = df1['Условие показа'].apply(stringComparison(df1['Условие показа'], df1['Поисковой запрос']) but i get invalid syntax error 

File "<ipython-input-2-b03e1cc77905>", line 1 df1['Коэффициент схожести']df1['Коэффициент схожести'] = df1['Условие показа'].apply(stringComparison(df1['Условие показа'], df1['Поисковой запрос']) ^ SyntaxError: invalid syntax

我做错了

1 个答案:

答案 0 :(得分:0)

我假设您打算将StringComparison应用于“Условиепоказа”和“Поисковойзапрос”列以创建“Коэффициентсхожести”

df1['Коэффициент схожести'] = df1.apply(lambda x: stringComparison(x['Поисковой запрос'],x['Условие показа']), axis = 1 )

您当前的问题是

  1. 最后一行代码的左侧是胡说八道。
  2. 应用于系列时,apply方法将应用提供的功能 该系列的每一行。但是您只能访问该特定系列中包含的数据。数据框中其他列的任何数据。在您的情况下,它根本不使用任何行信息,而是将整个df1['Условие показа']df1['Поисковой запрос']用作stringComparison函数的输入。