使用dask数据帧创建新列的更快方法

2024-06-09 03:28:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个函数,它使用fuzzyfuzzy从两列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数据帧上向新列返回一个新值


Tags: 数据lambda函数name名称距离dfdata