2017-09-14 110 views
0

我需要合併從目標數據框中一行到上已經開發出一種模糊匹配條件我的源數據幀從目標文件加入一行,我們調用方法fuzzyTest。如果模糊測試返回True,我想在匹配時將目標文件的行合併到我的源文件中。熊貓,根據病情

所以基本上做一個左連接MAPP後希望相比SOURCE COMPANY.

源數據幀

  SOURCE COMPANY 
0   Cool Company 
1    BigPharma 
2   Tod Kompany 
3    Wallmart 

目標數據框

     TARGET COMPANY 
0      Kool Company 
1       Big farma 
2      Todd's Company 
3        C-Mart 
4       SuperMart 
5       SmallStore 
6        ShopRus 

當其中TARGET COMPANY經過fuzzyTest通過fuzzyTest荷蘭國際集團輸出將是:

     SOURCE COMPANY  TARGET COMPANY 
0      Cool Company   Kool Company 
1       BigPharma   Big farma 
2       Tod Kompany  Todd's Company 
3       Wallmart     NaN  

回答

1

所以,如果您的模糊邏輯只有兩個字符串比較每一行,只是把它包裝成是發生在列源和列的目標函數。 使在一個數據幀兩列然後運行:

def FuzzyTest(source,target): 
    ..... 
    if ...: 
     return target 
    else: 
     return None 

df['Target Company'] = df.apply(lambda x: FuzzyTest(x['Source'],x['Target']) 
+0

@ X33沒有約你拒絕出示你的「祕密」功能的任何細節,沒有什麼可說的了。請展示您的代碼 - 或者至少可以向我們展示的代碼。如果沒有一個好的問題,我們不能指望我們給你一個答案。 –

+0

@COLDSPEED我不認爲你明白這個問題。這個問題是/完全可以解決的,而不需要'FuzzyTest'函數。我告訴過你函數的輸入/輸出和目的,除此之外沒有必要,因爲它沒有其他用途。如果我沒有正確解釋,我很抱歉。 – X33

+0

您的解決方案並沒有考慮到了'TARGET COMPANY'並不總是同一行/索引。 – X33