パンダのデータフレームでforループを使用して、すべての一意の値のレーベンシュタイン距離を計算する方法

クリシュナムルシーナラヤナスワミー

forループを使用してデータフレーム内のレーベンシュタイン距離を計算しようとしています。

df2_2=df2_1[['Concat','Count','ffour']].copy()
for a in df2_2['Concat'].unique():
    dw2_2=df2_2[df2_2['Concat']==a]
    vv = dw2_2.iloc[:, 1::2].values
    iRow, iCol = np.unravel_index(vv.argmax(), vv.shape)
    iCol = iCol * 2 + 1
    result = dw2_2.iloc[iRow, [0, iCol, iCol + 1]]
    b=result.copy()
    b=b.drop(labels=['Concat','Count'])
    print (b)
    b=b.astype(str)
    for a1 in df2_2['ffour'].unique():
        dw2_1=df2_2[df2_2['ffour']==a1]
        c= dw2_1['ffour'].copy()
        print (c)
        c=c.astype(str)
        for i in range (len(b)):
            distance=lev.distance(b,c)
            print (distance)
            ratio=lev.ratio(b,c)
            print (ratio)

これでエラーが発生します

  File "<ipython-input-129-15900bf3d493>", line 17, in <module>
    distance=lev.distance(b,c)

TypeError: distance expected two Strings or two Unicodes

これについて助けが必要です。

私は、あなたは、両方の値をチェックすることをお勧めしますbcあなたはいつでもただ使うことができますstr(b)str(c)そしてそれはトリックをするかもしれません。
そのように:

distance=lev.distance(str(b),str(c))

または、列のすべての値にstr()を適用して、Concat文字列のみが含まれるようにすることもできます。

df2_2['Concat'] = df2_2['Concat'].map(lambda x: str(x))

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ