编程语言
首页 > 编程语言> > python – 使用fuzzywuzzy在dataframe中创建新列

python – 使用fuzzywuzzy在dataframe中创建新列

作者:互联网

我在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函数内部,表示此处的当前行.在你的代码中,你实际上忽略了这个系列,并试图每次使用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作为输入,但只是因为它在内部将它转换为一个字符串.:)

标签:python,pandas,fuzzywuzzy
来源: https://codeday.me/bug/20190608/1200989.html