python - 编辑两个 Pandas 列之间的距离

标签 python string pandas nlp nltk

我有一个由两列字符串组成的 pandas DataFrame。我想创建第三列,其中包含两列的编辑距离。

from nltk.metrics import edit_distance    
df['edit'] = edit_distance(df['column1'], df['column2'])

出于某种原因,这似乎进入了某种无限循环,因为它在相当长的一段时间内仍然没有响应,然后我必须手动终止它。

欢迎提出任何建议。

最佳答案

nltk 的edit_distance 函数用于比较字符串对。如果您想计算相应字符串对之间的编辑距离,它分别应用于每一行的字符串,如下所示:

results = df.apply(lambda x: edit_distance(x["column1"], x["column2"]), axis=1)

或者像这样(可能更有效一点),以避免包含数据框的不相关列:

results = df.loc[:, ["column1", "column2"]].apply(lambda x: edit_distance(*x), axis=1)

要将结果添加到您的数据框,您可以像这样使用它:

df["distance"] = df.loc[:, ["column1","column2"]].apply(lambda x: edit_distance(*x), axis=1)

关于python - 编辑两个 Pandas 列之间的距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42892617/

相关文章:

python - 是否可以将我机器上的环境变量推送到 GitHub?

python - 我可以 get() 或 xcom.pull() Airflow 脚本的 MAIN 部分中的变量(在 PythonOperator 之外)吗?

c - strcpy 的替代品?或者修复程序中的strcpy?

c - 从 C 代码打印 ip 地址和 udp 端口

python - 在 Python 中使用 "for"计算索引

python - 有没有一种方法可以将某些值的数据从另一个表插入到一个表中?

c - Scanf 和 printf 返回不同的 unicode 字符

python - 如何将 pandas Dataframe 的每一列划分为一个系列?

pandas - 日期时间系列中第一个值和最后一个值之间的天数差异

python - Pandas 到多个字典对象