鍍金池/ 問答/人工智能  數(shù)據(jù)分析&挖掘  Python/ pandas如何高效匹配兩個數(shù)據(jù)表

pandas如何高效匹配兩個數(shù)據(jù)表

我有兩個數(shù)據(jù)表,s1是100萬的商品數(shù)據(jù),s2是4000的品牌數(shù)據(jù),任務是給商品數(shù)據(jù)里打上品牌標簽,我用pandas處理

def matchStr(x):
    s = s1[s1["product_name"].str.contains(x,na=False)]
    #然后給s添加一列品牌名就好

s2["brand_name"].apply(matchStr) 

這樣做可以實現(xiàn),但是平均處理一個品牌名是3秒左右,4000個要3個多小時才能完成,請問如何更高效的處理這個啊

回答
編輯回答
傲寒

先笛卡爾積s1['product_name']和s2['brand_name'],設為結(jié)果為df則:

df[df['brand_name'].isin('product_name')]

為結(jié)果。這樣子可能會調(diào)用內(nèi)部優(yōu)化快一點,可以試試。

具體如何在pandas里做笛卡爾積可以參考這個答案。

2017年3月23日 15:23