我有以下函数,该函数使用Fuzzywuzzy从名为psn_name_x和psn_name_y的两列中查找两个名字之间的Levenshtein距离比:
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数据帧上的新列?