【发布时间】:2016-10-18 18:20:32
【问题描述】:
我正在两个数据框的公司名称之间执行匹配(一种模糊匹配)。为此,首先我在所有公司名称之间执行完全合并,其中起始字母匹配。这意味着所有以“A”开头的公司都将与其他数据框中以“A”开头的所有公司匹配。这样做如下:
df1['df1_Start'] = df1['company1'].astype(str).str.slice(0,2)
df2['df2_Start'] = df2['company2'].astype(str).str.slice(0,2)
Merge = pd.merge(df1,df2, left_on='df1_Start',right_on='df2_Start')
现在我想从 FullMerge 中获取 df1 中的公司包含 df2 中的公司的所有行。这是因为 df1 中的公司名称已拉长。
Merge1=Merge[Merge['company1'].str.contains(Merge['company2'].str)]
这对我不起作用。如何执行此任务?另外,请建议我可以使用哪些其他方式来匹配公司名称。因为公司可能在两个数据框中是相同的,但不是以完全相同的方式编写的。
【问题讨论】:
标签: python pandas fuzzywuzzy