将Python函数应用于每一行并追加

2024-10-02 20:38:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下数据:

enter image description here

我正在尝试使用库-pyjarowinkler 并找到字符串之间的距离-我的hello world代码有效

#Hello World
d1=distance.get_jaro_distance("Hello","hello", winkler=True, scaling=0.1);
d1

当我尝试迭代每一行或使用apply时,我的代码失败。谁能给我指一下正确的方向吗

#Import data 
import pandas
df = pandas.read_csv('data.csv')
from pyjarowinkler import distance
score=df.apply(distance.get_jaro_distance(df[S1],df[Stores]))



# iterating over rows using iterrows() function  
for i, j in df.iterrows(): 
    print(i, j,distance.get_jaro_distance(i,j,winkler=True, scaling=0.1)) 
    print()

错误:

JaroDistanceException: Cannot calculate distance from NoneType (int, Series)

预期产出为:

enter image description here


Tags: 代码importtruehellodfdatagetdistance
1条回答
网友
1楼 · 发布于 2024-10-02 20:38:46

我想你应该能做到

df['distance'] = df.apply(lambda d: distance.get_jaro_distance(d['S1'],d['store'],winkler=True,scaling=0.1), axis=1)

注意axis=1参数被传递给.apply,这告诉它按行而不是按列操作df

相关问题 更多 >