gpt4 book ai didi

pandas - 在 Pandas 中矢量化连接条件

转载 作者:行者123 更新时间:2023-12-04 12:39:35 25 4
gpt4 key购买 nike

此代码按预期正常工作。但是对于大型数据帧需要花费大量时间。

for i in excel_df['name_of_college_school'] :
for y in mysql_df['college_name'] :
if SequenceMatcher(None, i.lower(), y.lower() ).ratio() > 0.8:
excel_df.loc[excel_df['name_of_college_school'] == i, 'dupmark4'] = y

我想,我不能在 join 子句上使用函数来比较这样的值。
我如何矢量化这个?

更新:

是否有可能以最高分进行更新?此循环将覆盖较早的匹配项,并且较早的匹配项可能比当前的匹配项更相关。

最佳答案

您正在寻找的是模糊合并。

a = excel_df.as_matrix()
b = mysql_df.as_matrix()
for i in a:
for j in b:
if SequenceMatcher(None,
i[college_index_a].lower(), y[college_index_b].lower() ).ratio() > 0.8:
i[dupmark_index] = j

永远不要在循环中使用 loc,它有巨大的开销。顺便说一句,获取相应列的索引(数字一)。用这个 -
df.columns.get_loc("college name")

关于pandas - 在 Pandas 中矢量化连接条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46272906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com