Применить функцию Python к каждой строке и добавить - PullRequest
0 голосов
/ 28 января 2020

У меня есть следующие данные:

enter image description here

Я пытаюсь использовать библиотеку - pyjarowinkler и найти расстояние между строки - мой код hello world работает

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

Когда я пытаюсь выполнить итерацию каждой строки или применить, мой код завершается неудачно. Может кто-нибудь, пожалуйста, укажите мне в правильном направлении.

#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

1 Ответ

1 голос
/ 28 января 2020

Я думаю, что вы должны иметь возможность

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 по строкам, а не по столбцам

...