如何使用 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 )
您当前的问题是;
- 你最后一行代码的左边是胡说八道。
- 应用于系列时,apply 方法应用提供的函数
该系列的每一行。但是您只能访问该特定系列中包含的数据。不是来自数据框中其他列的任何数据。在您的情况下,它根本不使用任何行信息,而是将整个
df1['Условие показа']
和 df1['Поисковой запрос']
作为 stringComparison
函数的输入。
我有一个包含多列的数据框,我想将两列相互比较。我尝试使用 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 )
您当前的问题是;
- 你最后一行代码的左边是胡说八道。
- 应用于系列时,apply 方法应用提供的函数
该系列的每一行。但是您只能访问该特定系列中包含的数据。不是来自数据框中其他列的任何数据。在您的情况下,它根本不使用任何行信息,而是将整个
df1['Условие показа']
和df1['Поисковой запрос']
作为stringComparison
函数的输入。