微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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作为输入,但只是因为它在内部将它转换为一个字符串.:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐