簡體   English   中英

模糊匹配 2 數據幀?

[英]fuzzy match 2 DataFrames?

有一個 package 叫 fuzzy_pandas 可以使用 levenshtein 進行比率字符串匹配。 這里有一些很好的例子

作為這個例子:

import pandas as pd
import fuzzy_pandas as fpd

df1 = pd.DataFrame({'Key':['Apple', 'Banana', 'Orange', 'Strawberry']})
df2 = pd.DataFrame({'Key':['Aple', 'Mango', 'Orag', 'Straw', 'Bannanna', 'Berry']})

results = fpd.fuzzy_merge(df1, df2,
            left_on='Key',
            right_on='Key',
            method='levenshtein',
            threshold=0.6)

results.head()

所以,我不知道是否可以在結果中顯示閾值。

output 是:

Key Key
0   Apple   Aple
1   Banana  Bannanna
2   Orange  Orag

我想要這樣的東西:

Key Key Ratio
0   Apple   Aple 0.81
1   Banana  Bannanna 0.87
2   Orange  Orag 0.78

Maybe with another library

要創建閾值,您可以執行以下代碼:

結果['相似度']= results.apply(lambda x:fuzz.token_set_ratio(x['Key'],x['Key']),axis=1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM