Fuzzymatch ограничен + -X строками от этого индекса строки? - PullRequest
0 голосов
/ 02 августа 2020

Я действительно технически не разбираюсь, но пытаюсь работать с некоторыми данными.

Есть ли способ выполнить нечеткое сопоставление x строк по обе стороны от этого индекса и исключить себя?

Например, 2 пробела по обе стороны от заданной строки.

Это значительно сократит время моих вычислений, а также будет более эффективным, поскольку данные несколько отсортированы.

Это код, который я сейчас have, однако при этом каждая запись будет сравниваться с каждой другой записью, включая себя.

def fuzzy_merge(df1, df2, key1, key2, threshold=89, limit=1):

    s = df2[key2].tolist()

    m = df1[key1].apply(lambda x: process.extract(x, s, limit=limit))    
    df1['matches'] = m

    m2 = df1['matches'].apply(lambda x: ', '.join([i[0] for i in x if i[1] >= threshold]))
    df1['matches'] = m2

    return df1, df1.to_csv('bigtest.csv')

fuzzy_merge(df1.loc[0:1000,], df1.loc[0:1000,], 'test', 'test', threshold=89, limit =1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...