如何使用 fuzzywuzzy 模块比较两个 pandas 列的字符串

How to compare strings of two pandas column using fuzzywuzzy module

我有一个包含多列的数据框,我想将两列相互比较。我尝试使用 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

我做错了什么

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

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

您当前的问题是;

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