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