编辑两个pandas列之间的距离

时间:2017-03-19 21:39:16

标签: python string pandas nlp nltk

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

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

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

欢迎任何建议。

1 个答案:

答案 0 :(得分:7)

nltk的type Depth struct { XXX XXX `json:"xxx_xxx"` } type XXX struct { Asks []Nums `json:"asks"` Bids []Nums `json:"bids"` } type Nums []float64 func (n Nums) One() float64 { if len(n) > 0 { return n[0] } return 0 } func (n Nums) Two() float64 { if len(n) > 1 { return n[1] } return 0 } 函数用于比较字符串对。如果你想计算相应字符串对之间的编辑距离,edit_distance将它分别计算到每一行的字符串,如下所示:

apply

或者像这样(可能效率更高一些),避免包含数据帧的不相关列:

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)