Более быстрый способ использования .apply в dask dataframes для создания новых столбцов - PullRequest
0 голосов
/ 07 октября 2019

У меня есть следующая функция, которая использует fuzzywuzzy для нахождения отношения расстояний Левенштейна между двумя именами из двух столбцов с именами psn_name_x и psn_name_y:

def fuzzMatcher(x, y):
    return fuzz.token_set_ratio(x, y)

Затем я создаю новый столбец в моем фрейме данных dask:

data["fuzz"] = data.map_partitions(lambda df: df.apply(lambda row: fuzzMatcher(row.psn_name_x, row.psn_name_y), axis = 1)).compute(scheduler = "processes")

Полученные новые столбцы представляют собой целое число от 0 до 100.

Это работает достаточно хорошо, но этот набор данных огромен, и время вычисления для этого достаточно медленное. Есть ли лучший способ применить функцию, которая принимает значения из двух столбцов и возвращает новое значение в новый столбец на фрейме данных dask?

...