使用 fuzzywuzzy 在数据框中创建新列

create new column in dataframe using fuzzywuzzy

我在 pandas 中有一个数据框,我在 python 中使用 fuzzywuzzy 包来匹配数据框中的第一列和第二列。

我定义了一个函数来创建具有第一列、第二列和部分比率分数的输出。但它不起作用。

你能帮忙吗

import csv
import sys
import os
import numpy as np
import pandas as pd
from fuzzywuzzy import fuzz
from fuzzywuzzy import process

def match(driver):
    driver["score"]=driver.apply(lambda row: fuzz.partial_ratio(row driver[driver.columns[0]], driver[driver.columns[1]]), axis=1)
    print(driver)
    return(driver)

此致

-算盘

您在 apply 函数中传递了一个 Series 来处理,代表此处的当前行。在您的代码中,您实际上忽略了这个 Series 并尝试每次使用 DataFrame 的两整列调用 partial_ratio (driver[col]).

对您的代码稍作改动,应该可以满足您的需求。

d = DataFrame({'one': ['fuzz', 'wuzz'], 'two': ['fizz', 'woo']})

d.apply(lambda s: fuzz.partial_ratio(s['one'], s['two']), axis=1)

0    75
1    33
dtype: int64

(有趣的是,partial_ratio 函数将接受 Series 作为输入,但这只是因为它在内部将其转换为字符串。:)