【问题标题】:create new column in dataframe using fuzzywuzzy使用fuzzywuzzy在数据框中创建新列
【发布时间】:2016-03-21 18:27:01
【问题描述】:

我在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)

问候

-算盘

【问题讨论】:

    标签: python pandas fuzzywuzzy


    【解决方案1】:

    您在apply 函数中传递了一个可以使用的系列,代表此处的当前行。在您的代码中,您实际上忽略了这个 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 作为输入,但这只是因为它在内部将其转换为字符串。:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-18
      • 1970-01-01
      • 1970-01-01
      • 2019-08-29
      • 1970-01-01
      • 2018-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多