在dask数据框上使用.apply来创建新列的更快方法

时间:2019-10-07 17:56:38

标签: python dask

我有以下函数,该函数使用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数据帧上的新列?

0 个答案:

没有答案