Python 如何计算两列之间的模糊比率?
从熊猫开始Python 如何计算两列之间的模糊比率?,python,pandas,numpy,data-science,Python,Pandas,Numpy,Data Science,从熊猫开始 I have two columns: A B Something Something Else Everything Evythn Someone Cat Everyone Evr1 我想计算两列之间每一行的模糊比率,因此输出如下: A B Ratio Somethin
I have two columns:
A B
Something Something Else
Everything Evythn
Someone Cat
Everyone Evr1
我想计算两列之间每一行的模糊比率,因此输出如下:
A B Ratio
Something Something Else 12
Everything Evythn 14
Someone Cat 10
Everyone Evr1 20
我怎样才能做到这一点?两列在同一个df中。使用lambda函数:
编辑:
如果可能,列中缺少一些值,则失败,因此添加:
将lambda函数用于:
编辑:
如果可能,列中缺少一些值,则失败,因此添加:
首先,如何计算两个字符串之间的模糊比率?首先,如何计算两个字符串之间的模糊比率?类型为float的对象为no len()。当我将A和B替换为df@balkotdude你能试试df['Ratio']=df吗。dropna(子集=['A','B'])。应用(lambda x:fuzz.ratio(x.A,x.B),axis=1)?类型为float的对象为no len()。当我将A和B替换为df@balkotdude你能试试df['Ratio']=df吗。dropna(子集=['A','B'])。应用(lambda x:fuzz.ratio(x.A,x.B),axis=1)?
from fuzzywuzzy import fuzz
df['Ratio'] = df.apply(lambda x: fuzz.ratio(x.A, x.B), axis=1)
#alternative with list comprehension
#df['Ratio'] = [fuzz.ratio(a, b) for a,b in zip(df.A, df.B)]
print (df)
A B Ratio
0 Something Something Else 78
1 Everything Evythn 75
2 Someone Cat 0
3 Everyone Evr1 50
print (df)
A B
0 Something Something Else
1 Everything NaN
2 Someone Cat
3 Everyone Evr1
from fuzzywuzzy import fuzz
df['Ratio'] = df.dropna(subset=['A', 'B']).apply(lambda x: fuzz.ratio(x.A, x.B), axis=1)
print (df)
A B Ratio
0 Something Something Else 78.0
1 Everything NaN NaN
2 Someone Cat 0.0
3 Everyone Evr1 50.0