将删除的单词映射回熊猫

时间:2018-02-09 10:19:57

标签: python pandas dataframe

我接下来的数据框:

第1列包含名称

第2列包含删除大多数出现的单词后的名称(阈值> = 4)

DF1:

name                stripped_name
davids garden       davids garden   
xerox center        xerox
auto gas            auto
auto c gas          auto c
petroleum gas       petroleum
petrol gas          petrol  
gas engine          engine
money center        money
cyber cafe center   cyber   
cyber cafe          cyber
bahaar cafe         bahaar
coaching center     coaching    
cool cafe           cool    
bahar cafe          bahar

假设我将剥离的名称传递给模糊匹配的函数并返回以下结果

DF2:

p           s0 
auto c      auto
bahaar      bahar
petroleum   petrol
cyber       cyber

因此,如果我要将df2.p,df2.s0中的名称映射回df1的name列, 将有一个有价值的网络,属于两个名称(网吧和网吧中心)。

我该如何映射? 我可以获得有关添加任何中间层以克服歧义的任何建议吗?

以下是期望的结果:

p           p1                   s0     s 
auto c      auto c gas           auto   auto gas
bahaar      bahaar cafe          bahar  bahar cafe
petroleum   petroleum gas        petrol petrol gas
cyber       cyber cafe center    cyber  cyber cafe

1 个答案:

答案 0 :(得分:0)

我们假设df1中的stripped_name列是唯一的。否则,df2无法分辨哪个转换回来。

s = df1.set_index("stripped_name")["name"] 
df2.apply(lambda x: x.map(s))

请参阅map