我接下来的数据框:
第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
答案 0 :(得分:0)
我们假设df1中的stripped_name
列是唯一的。否则,df2无法分辨哪个转换回来。
s = df1.set_index("stripped_name")["name"]
df2.apply(lambda x: x.map(s))
请参阅map